2.6.1节练习
练习2.39:编译下面的程序观察其运行结果,注意,如果忘记写类定义体后面的分号发生什么情况?记录下相关信息,以后可能会有用。
strucr Foo { /* 此处为空*/ } // 注意:没有分号
int main()
{
return 0;
}
出题思路:本题旨在考查类定义的语句规范,尤其要注意类体结束之后的分号必不可少。
解答:
该程序无法编译通过,原因是缺少了一个分号。因为类体后面可以紧跟变量名以示对该类型对象的定义,所以在类体右侧表示结束的花括号之后必须写一个分号。稍作修改,该程序就可以编译通过了。
struct Foo { /* 此处为空*/ };
int main()
{
return 0;
}
练习2.40:根据自己的理解写出Sales_data类,最后与书中的例子有所区别。
出题思路:类的设计源于实际应用,设计Sales_data类的关键是理解在销售过程中应该包含哪些数据元素,同时为每个元素设定合理的数据类型。
解答:
原书中的程序包含3个数据成员,分别是bookNO(书籍编号)、units_sold(销售量)、revenue(销售收入),新设计的Sales_data类细化了销售收入的计算方式,在保留bookNO和units_sold的基础上,新增了sellingprice(零售价、原价)、saleprice(实售价、折扣价)、discount(折扣),其中discount=saleprice/sellingprice。
struct Sales_data {
std::string booNO; // 书籍编号
unsigned units_sold = 0; // 销售量
double sellingprice = 0.0; // 零售价
double saleprice = 0.0; // 实售价
double discount = 0.0 // 折扣
};
普通的冒险故事提示您:看后求收藏(卧龙小说网http://www.wolongxs.com),接着再看更方便。
好书推荐:《我的剧本世界在自主运行》、《我是舰娘》、《我的师妹是妖女》、《交错世界之学院都市》、《认清现实后,她们开始追夫火葬场》、《好徒儿你就饶了为师伐》、