首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

请问几个问题,类里面构造函数和析构函数以及成员函数的定义

2012-01-30 
请教几个小问题,类里面构造函数和析构函数以及成员函数的定义小弟菜鸟最近在看深入浅出MFC书中六大关键技

请教几个小问题,类里面构造函数和析构函数以及成员函数的定义
小弟菜鸟
最近在看深入浅出MFC
书中六大关键技术仿真时,类定义如下
Class CWinApp : public CWinThread
{
public:
  CWinApp * m_pCurrentApp;

public:
  CWinApp::CWinApp(){}
  CWinApp::~CWinApp(){}
}

上面这个类定义成
Class CWinApp : public CWinThread
{
public:
  CWinApp * m_pCurrentApp;

public:
  CWinApp(){}
  ~CWinApp(){}
}
可以不可以?此处为什么要加上“CWinApp::”?有什么含义或者说法?必须要加吗?


CWinApp * m_pCurrentApp; 这一句,类型名就是类名,类体明显没有声明完,类型可用么?(我自己编译了一下)
是成功的,但是,在一个未声明完的类里面为什么可以用类名定义指针?内存分配可以完成么?


[解决办法]
1.此处为什么要加上“CWinApp::”?有什么含义或者说法?必须要加吗?
可以不加的,但是建议你看看建立类的时候一般申明放在.h文件里面.实现放在.cpp文件里面,写法如:
Class CWinApp : public CWinThread
{
public:
CWinApp * m_pCurrentApp;

public:
CWinApp();
CWinApp();
}

在.cpp文件里面CWinApp::CWinApp(){};
CWinApp::~CWinAoo(){};

2.类的内存分布只是在实例化的时候才会分配,指针此时只是作为类成员被编译到符号文中,并没有指向实际的地址。编译的时候并没有对类和指针分配地址。

[解决办法]
1:

C/C++ code
CWinApp::CWinApp(){}  CWinApp::~CWinApp(){} 

热点排行