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

请教几个小问题,类里面构造函数和析构函数以及成员函数的定义
小弟菜鸟
最近在看深入浅出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(){}