我定义了一个类,在这个类中我声明了一个结构。当我在dialog中加入这个类后调用这个结构是,程序认为这个结构不是类或结构。但是当我在document/view中用同样方法调用时却正常通过。
这是为什么?怎样解决?
定义情况如下:
typedef struct
{
.............
}a, *point;
............
在dialog中初始化:
a b[] =
{
{...............},
..................
};
这是为什么?怎样解决?
定义情况如下:
typedef struct
{
.............
}a, *point;
............
在dialog中初始化:
a b[] =
{
{...............},
..................
};
而且在该类中定义的别的用的很正常。
难道除了这还要包含什么吗?
我是在初始化对话框中调用的,在...Dlg.cpp中初始化这个struct的。
除了包含自定义类的头文件外,就是系统自己自动给出的h文件了
{
.............
}a, *point;
};若真是这样,在DLG中的定义如下:A::a b[] =
{
......
}
由于我的这个结构是定义在这个类的h文件的开头,因此它不属于这个类,只是这个类可以调用它,这个结构是作为一个单独的"类“出现在workspace上的
typedef struct mystruct
{
.....
}AAAclass myclass
{
public:
AAA m_str[10];
...
}
...然后在你的Dlg.cpp文件里包含上面这个头文件,在InitialDialog里面就可以这样初始化这个struct数组:
myclass* m_myclass=new myclass;
m_myclass->m_str[0].???=???
...
而且关键是同样的做法在view里正确,dialog里却报错没用
class AAA
{
public:
AAA m_str[];
............
}
这种做法是直接在文件开头就初始化的,新定义结构名