摘要:
该条款主要是为了连锁形式而服务,即形如: x=y=z=15; 即: x=(y=(z=15)); 为了能够实现该功能,常常采用返回赋值符号的左边变量(当然其他操作也可以这样进行); 即如下所示: class wideget { public: wideget& operator+=(const wid 阅读全文
posted @ 2020-12-03 23:45
暮云林凌
阅读(97)
评论(0)
推荐(0)
摘要:
本章主要讲解了多态情况下在构造函数内调用virtual的问题; 针对于多态情况下,我们希望根据指针指向的类型调用不同的虚函数,但是在构造函数中可能存在问题; 例如下列例子: class Transaction { public: Transaction(); virtual void logTran 阅读全文
posted @ 2020-12-03 23:31
暮云林凌
阅读(107)
评论(0)
推荐(0)
摘要:
本章节主要描述了析构函数异常捕捉的问题; 对于C++来说,有一条重要的异常捕捉规定:所以异常都可以抛出,但是不可以在析构函数内进行传播; 所以对于析构函数,一定要注意异常问题,要么捕捉,要么强行结束; 但是由于程序强制结束并不科学,所以一边采用捕捉的方式来进行处理; 但是一旦出现异常,必定意味着程序 阅读全文
posted @ 2020-12-03 21:20
暮云林凌
阅读(194)
评论(0)
推荐(0)
摘要:
对于析构函数是否virtual主要看是否实在多态的情境下; 对于基类来说,首先需要明确的是,不是所有的基类都已多态为目标而诞生,例如条款6中曾经提过关于赋值和符号赋值的做基类的问题; 对于多态性来说,我们时常使用一个指向基类的指针来进行虚函数的调用; #include<iostream> using 阅读全文
posted @ 2020-12-03 17:49
暮云林凌
阅读(113)
评论(0)
推荐(0)
摘要:
本章节针对于条款6做出了一个补充,旨在指出如何避免使用编译器的默认四大函数,即构造、析构、copy、assignment copy四类函数; 由于某些情况下我们不希望copy和assignment copy的存在,保持每个实例化类的独一无二; 但是如果不进行指定,会让编译器默认构造,所以必须要寻求某 阅读全文
posted @ 2020-12-03 15:46
暮云林凌
阅读(58)
评论(0)
推荐(0)
摘要:
本章节主要讲述了如果不指定类内构造、析构、赋值函数所可能出现的坑; 对于每一个类,如果不指定任何函数,则编译器会帮助使用者构建四类基本函数: 1.构造函数:构建; 2.析构函数:析构; 3.赋值函数:主要针对于实参括号初始化所使用的函数; 4.符号赋值函数:利用等号进行函数赋值的函数; 其中构造析构 阅读全文
posted @ 2020-12-03 15:11
暮云林凌
阅读(93)
评论(0)
推荐(0)

浙公网安备 33010602011771号