我最近在看人民邮电出版社,董山海写的《C与C++程序员面试秘笈》,其中第6章涉及到两个题目:
1.C++中的空类默认会产生哪些成员函数?解答是会生成默认构造函数,拷贝构造函数,析构函数,赋值函数和取址函数等等。
2、什么情况下编译器会产生默认的copy constructor?解答是没有定义复制构造函数,并且在代码中用到了复制构造函数,编译器就会生成默认的复制构造函数。还说如果用户定义了构造函数,且不是复制构造函数,代码中如果用到了复制构造函数,编译器会生成默认的复制构造函数,如果没有用到,就不会生成。
我有疑问:那空类中也没有用到拷贝构造函数,为什么会生成默认的拷贝构造函数呢?
难道是因为空类中连构造函数也没有定义,所以会统统生成?一旦定义了构造函数,没有用到拷贝构造函数就不会生成默认的了吗?求各位大神解答!