第十五章 复习题

1. 

a. clasp是友元类,所以声明友元的时候必须的加上一个class

friend class clasp;

b.这种情况必须前向声明相关类和函数

snip(muff &);

class muff;

class cuff {

...};

class muff {

..};

c. 跟b的情况一样,需要前向声明相关类和函数

class muff;

class cuff { 

public:

void snip(muff &) { ...}

...};

class muff [

friend void cuff::snip(muff &);

...};


2. 这涉及到前向声明的问题。如果想要A类有一个本身为B类的成员函数的友元,B的声明必须位于A的声明之前。反正必须前向声明类A。这个两个要求是相冲突的,所以不能。


3. Sauce是Ribs的私有成员类,只能通过Ribs的Sauce构造函数来创建Sauce的对象。


4.如果有个函数f1()调用函数f2(),如果f2()有个返回值return,就return一个值给f1,然后继续执行f1剩下来的代码,很简单。如果是throw的话,程序会寻找对应的try catch程序块执行,这个可能在f1里面,也可能是在f2外面,


5. 按照从子孙到祖先的顺序排到catch语句类。


6.例1pg指向Superb对象或者Superb的派生类的对象比如Magnificent对象时,if都返回true。而例2当且仅当pg指向Superb的对象的时候if才返回true。


7. Dynamic_cast只允许沿类层次结构向上转换,而static_cast运算符允许向上转换和向下转换。static_cast还允许枚举类和整形之间以及数值类型之间的转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值