记录了cppquiz的题目
Q29
1 |
|
输出: 121
即使foo()是虚函数,在执行构造函数和析构函数时也不认为它是虚的。
理由:
如果正在构造B类型的对象,首先调用A的构造函数,然后调用B的构造函数。因此,在A的构造函数期间,对象的“B部分”还没有被构造,不应该被使用。很容易想象B::foo()会使用对象的“B部分”,所以A的构造函数调用它是很危险的。
当对象被销毁时,首先调用B的析构函数,然后调用A的析构函数,会导致同样的问题。
1 |
|
输出:abbc
这题还是比较简单,主要是X z = y
这句是调用的是拷贝构造函数。
如果在拷贝构造函数前加explict
关键字,则不支持这种形式调用构造函数,只能用X y(x)
。
- 本文作者: JiXiaw
- 本文链接: http://jixiaw.github.io/2021/02/27/cppquiz2/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!