Sales_item.h:56:18: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11
     Sales_item()=default;
                  ^
Sales_item.h:70:27: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
     unsigned units_sold = 0; // explicitly initialized
                           ^
Sales_item.h:71:22: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
     double revenue = 0.0;
                      ^
Sales_item.h:45:7: error: constructor required before non-static data member for ‘Sales_item::units_sold’ has been parsed
 class Sales_item {
       ^
Sales_item.h:45:7: error: constructor required before non-static data member for ‘Sales_item::revenue’ has been parsed

在敲练习的时候,出现的以上错误提示。应该是C++11才支持defaulted and deleted functions的用法。

解决方法:

sudo vim ~/.bashrc

然后输入密码。

在第90行, # some more ls aliases添加下面内容:

alias g++11='g++ -g -Wall -std=c++11'
alias g++14='g++ -g -Wall -std=c++14'

相当于起别名。