问个问题:
我现在有个Form1
++++++++++ form1.h ++++++++++
class Form1::QWidget(...)
{
public:
int n;
int num;
QTabWidget *tw[];
// MyWidget *my[]; //$$
}
-------------------------------------
++++++++++ form1.cpp +++++++++
Form1::Form1
{
n=3;
for(int i=0;i<n;i++)
{
tw[ i ]=new QTabWidget(this);
}
num=8;
MyWidget *my[]; // MyWidget继承QWidget
// 上面有好些部件
for(int i=0;i<num;i++)
{
my[ i ]=new MyWidget(this);
}
... / / 后面是将各个my[ i ] 插入到一个QTabWidget中
}
---------------------------------------
状况: 1.tw[ ]声明放在.h文件中运行OK
2.my[ ]声明如果放在.cpp中(如上所示),编译、运行均OK
但如果将其放入.h中(如"$$"处所示),则编译会通过,而运行时出现段错误!
我就纳闷,为啥tw[]放在.h中声明可以,而my[ ]放在.h中会出错呢?
我现在关键是想在.cpp的Form1{ }之外调用tw[ ] 和my[ ](.cpp中还有其它函数)。
请问这如何解决?
[ 此贴被rockyluo在2008-10-08 13:51重新编辑 ]