C、C++易错知识点杂记(3)
2012-05-10 09:17
239 查看
下面的代码编译时,哪行会报错?
struct Test { Test (int) {} Test () {} void fun () {} }; int main() { Test a(1); //语句 1 a.fun(); //语句 2 Test b(); //语句 3 b.fun(); //语句 4 }
答案:语句 4 会报错:error: request for member `fun' in `b', which is of non-class type `Test ()()'
解析:实际上语句3声明了一个返回Test类对象的函数,而不是Test类的对象。所以语句4会报错。
类中常量必须声明为static类型
析构函数可以是内联的吗?
答案:可以。析构函数设为virtual的意义
当一个类的析构函数被设为virtual类型,则所有从此类派生的子类的析构函数都被自动设为virtual。这可以保证用父类指针动态new子类实例时,在delete父类指针时,子类的析构函数被调用,防止内存泄露。析构函数可以是虚函数,但是构造函数不可以。
对于一个空类,编译器默认产生4个成员函数:默认构造函数、析构函数、拷贝构造函数和赋值函数。
相关文章推荐
- C、C++易错知识点杂记(2)
- C、C++易错知识点杂记(4)
- C、C++易错知识点杂记(1)
- C++进阶—>易错知识点随笔
- C++表达式易错知识点
- C++易错知识点总结(一)...
- C/C++实战实用知识点记录
- C/C++的一些知识点归纳(二)
- 10道C++输出易错笔试题收集
- C++知识点梳理——vector
- C++ STL知识点小结
- C和C++难知识点,简单记
- C++ fstream 的易错的用法
- C++中的关键知识点(汇总)
- C++各知识点
- C++ 文件读写所需要知道的知识点(基于vs2013的win32项目)
- C++ 程序设计基本概念 知识点 小结
- C++必知的几个知识点
- 关于C++的基础易错知识(源于各种笔试题,自己要记得不断更新)
- 《thinking in c++》Volume 1知识点总结(一)