class CTalkDlg和#include "TalkDlg.h"两种引用方式有什么区别吗?(vc)
class CTalkDlg;是声明,这样你可以使用CTalkDlg这个类型,如:指针声明,函数声明中的返回类型,参数类型等
CTalkDlg *p;
CTalkDlg f( CTalkDlg );
都是可行的,说白了就是不需要知道CTalkDlg类的大小和成员的都可以.
而#include "TalkDlg.h"(前提是TalkDlg.h里有CTalkDlg的定义)就可以使用CTalkDlg的所有功能.
可以多次声明,但不能多次定义.也就是说在一个obj里.CTalkDlg的定义只能有一个.如过TalkDlg.h里还有些象全局函数,成员函数定义之类的东西的话,那么在所有要被连接在一起的obj里也应该是唯一的.不然就是重定义了哈