- 面向对象的原则是什么?
封装、继承和多态
- C++的空类默认产生哪些类成员函数?
默认构造函数、析构函数、复制构造函数和赋值函数
- 为什么拷贝构造函数只能传递引用
以传值方式调用函数时,会拷贝临时变量,此时又会调用拷贝构造函数来构造临时变量,从而出现无限循环。
- 哪一种成员变量可以在所有该类的实例之间共享?
静态成员变量
- C++中class和struct的区别
- 如何在类中使用常量成员变量?
使用const修饰的成员变量,必须在初始化列表中初始化。
- 把析构函数定义成virtual的意义在哪?
当析构函数被定义成virtual的以后,销毁父类对象时,会先执行子类的析构函数,销毁掉子类对象。
- 为什么构造函数不能被定义成virtual的?
虚函数内部是通过虚函数表来实现的,在执行时能通过vptr
指针指向正确的子类对象函数。而在创建对象时,必须要知道创建对象的准确类型,因此构造函数不能为虚。
- 析构函数可以时内联函数吗?
可以
此处评论已关闭