//CPerson是一个类
CPerson p;定义了一个类的对象,CPerson* p;定义了一个类的对象的指针
请问:
1.上面的说法对吗?
2.为什么前者不能调用protected类型的~Person()(析构函数),而后者却可以?
3.DECLARE_DYNCREATE(...)是什么意思?什么时候需要用?
4.谢谢!
CPerson p;定义了一个类的对象,CPerson* p;定义了一个类的对象的指针
请问:
1.上面的说法对吗?
2.为什么前者不能调用protected类型的~Person()(析构函数),而后者却可以?
3.DECLARE_DYNCREATE(...)是什么意思?什么时候需要用?
4.谢谢!
请问:
1.说法是对的.
2.为什么前者不能调用protected类型的~Person()(析构函数),而后者却可以?
不理解.
3.DECLARE_DYNCREATE(...)是什么意思?什么时候需要用?
动态创建.
比如创建一个MDI工程,系统生成的文档类的构造函数是protected类型的。然后我在视图类的头文件中定义:
CXXXMDIDoc* pDoc;//正确
CXXXMDIDoc pDoc;//出问题了
error C2248: 'CXXXMDIDoc::CXXXMDIDoc' : cannot access protected member declared in class 'CXXXMDIDoc'
CXXXMDIDoc pDoc;//类真正的对象
这句在声明一个类对象时,编译器会调用构造函数,来构造对象.这时你的构造函数是保护,不能直接访问,所以出错.
指针则不存在这个问题.因为没有调用构造函数.
可是如果你NEW的时候一会样会错.