作业帮 > 综合 > 作业

class CWinApp { public:CWinApp* m_pcurrentWinApp;

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 16:18:00
class CWinApp { public:CWinApp* m_pcurrentWinApp;
public:
CWinApp::CWinApp()
{
m_pcurrentWinApp = this;
cout
确实是怪怪的,如果只是指向this完全是脱裤子放屁,又是哪个无良的书里写的.
不过,如果是为了连接其他的对象,比如像链表那样,还是有用的,看以后怎么用了.可能只是初始化为this,然后可能会有方法把它指向别的对象.
再问: 我的意思是如果要在类里面声明自身的对象或者对象指针,构造函数是不是不能使用默认的?还是有其它什么要注意的?
再答: 默认构造函数是没有参数的构造函数,默认构造函数如果你不定义,编译器会给你定义一个非常简单的默认构造函数,在这个默认构造函数里,对象类型的数据成员会调用其默认构造函数,基本类型的什么都不会做。所以,如果类的数据成员的默认构造函数都存在并且符合你需要的语义就可以不写了,基本类型整数、字符、指针等默认是不会初始化的,所以如果有这样的成员就应该自己写默认构造函数来初始化这些成员。尤其需要注意的是指针类型的成员,看你这个类要不要负责分配它的内存,如果要负责,还必须负责在析构函数中释放内存;如果不需要也要初始化为合适的值,比如NULL。以上是什么情况需要自定义默认构造函数,跟自不自身没多大关系。