现在,我正在做这个教程:http://www.codeproject.com/Articles/20187/The-Ultimate-Grid-Beginner-s-Guide 请仔细看看,以便了解我的问题。
在必须声明MyCug网格类实例的部分,我遇到了问题。我已将Header文件包含在我的Class + App类中。但是当我想声明Instance时,会出现一个错误:错误C4430:缺少类型说明符 - 假定为int 在我要声明它的行上出错:
class CClassView : public CDockablePane { public:
MyCug m_grid;
如果我在.cpp文件中声明它,它可以工作。但它不公开。 有没有解决方案的选择?我希望你理解我的问题
以下是一些代码:
#include "ViewTree.h"
class CClassToolBar : public CMFCToolBar
{
virtual void OnUpdateCmdUI(CFrameWnd* /*pTarget*/, BOOL bDisableIfNoHndler)
{
CMFCToolBar::OnUpdateCmdUI((CFrameWnd*) GetOwner(), bDisableIfNoHndler);
}
virtual BOOL AllowShowOnList() const { return FALSE; }
};
class CClassView : public CDockablePane
{
public:
MyCug m_grid;
答案 0 :(得分:0)
一个选项是包含MyCug的标题
另一种选择是转发声明MyCug,然后将其声明为指针
class MyCug;
class CClassView : public CDockablePane
{
public:
MyCug* m_grid;
...
}
然后必须在构造函数中实例化实例
m_grid = new MyCug;
并在析构函数中删除
delete m_grid;
或在其他合适的地方。
ALT。将m_grid
声明为unique_ptr
class MyCug;
class CClassView : public CDockablePane
{
public:
std::unique_ptr<MyCug*> m_grid;
...
}
然后在构造函数
中实例化它就足够了m_grid.reset(new MyCug);