当创建类对象时,没有提供显示的初始值时,此时调用的是默认构造函数。它的实现有两种:定义一个无参的构造函数;构造函数的参数有默认值。不能同时出现
class testClass
{
public:
testClass(); /* 默认构造函数 */
testClass(int a, char b); /* 构造函数 */
testClass(int a=10,char b='c'); /* 默认构造函数 */
private:
int m_a;
char m_b;
};
当遇到这种定义方式时调用默认构造函数
testClass classA;
或者 testClass *classA = new testClass;
如果程序猿没有定义任何构造函数,则编译器会自动定义默认构造函数,其形式如 testClass() {};
只要程序猿定义了构造函数,编译器就不会再提供默认构造函数了,所以,程序猿最好再手动定义一个默认构造函数,以防出现 testClass a; 这样的错误。