class app
{
public:
bool creat()
{
app * p = new app();
return true;
}
}
后面的括号有什么用的?
查过说是指明调用该类的默认构造函数,感觉不对,默认构造函数不放回指针的
有这么两种情况:① app * p = new app(); 指的是如若app类中基本数据成员(包括指针),那么调用默认构造的同时会对相应的成员初始化(整形为0,
指针为NULL, 浮点为0.0 等等)
② app * p = new app; 只调用默认构造, 不会初始化基本类型成员变量...
默认构造函数,new会表示生成一个对象,并返回指针。返回指针是new来做到的
new为对象分配一块区域,调用该类的构造函数,并返回该类对象的指针。
后面也可以不加(),如果该类的构造函数没有参数的话,或者参数有default缺省参数。
括号里是放实参的,如果构造函数没参数可以不加。
new返回新创建对象的指针
通过new构建一个对象的指针
用new 创建对象时, 类名后面是需要有构造函数的。
上面的app类只有默认构造函数,所以就要用这个构造函数了。如果还有其他构造函数,也是可以用其他构造函数的。