开始在 CMyDoc* GetDocument(); 处老提示错误:
syntax error : missing ';' before '*'
后来我将句子改为class CMyDoc* GetDocument();后就通过了,但是我就不懂了,本来CMyDoc就是一个class嘛,为什么还要在前面加上"class"呢? 好奇怪的语法啊.
谁帮忙解释一下.
syntax error : missing ';' before '*'
后来我将句子改为class CMyDoc* GetDocument();后就通过了,但是我就不懂了,本来CMyDoc就是一个class嘛,为什么还要在前面加上"class"呢? 好奇怪的语法啊.
谁帮忙解释一下.
现在我想知道的是class CMyDoc* GetDocument();中class作何解释?这个句法以前从没遇到过,总觉得不对似的
这句加到我的头文件中, 没问题。
因为用的的是指针, 所以只要有类型说明一下就可。
具体的声明在正式用时编译器才会要。
编译器处理CMyDoc* GetDocument();
还没包含它的头, 因此不知CMyDoc是什么, 报错。变成class CMyDoc* GetDocument();后,
编译器知道它是个class, 因为现在没有用到它, OK, 通过编译,继续。当你在cpp中写这个函数时, 若是还没有CMyDoc的声明,
编译器就肯定继续了。 而你在这里包含了CMyDoc头文件,
因此没有问题。
class CMyDoc;
....
CMyDoc* GetDocument()
{
...
} 呵呵