求助,如果根据输入不同调用不同的类(子对象)
class A
{
public:
int p;
if(p==1)
C_student user[50];//为类C_student 的子对象
else
C_teacher user[50];//为类C_teacher 的子对象
};这样怎么不行呢?谢谢
[解决办法]
原因:
1。if 里面不能声明变量或者对象
2。这种代码要写在函数里面,
建议1
用
switch()
{case}
建议2.设计是不是要改一下
[解决办法]
继续苦读,类定义还没搞明白。另外你的p是类成员,说明不是预定义变量,建议你定义一个函数init()来用。
可不可以这样呢?
class A
{
public:
int p;
void *user;
void init();
};
void A::init()
{
if(p==1)
{
(C_student*) user = new C_student[50];
}
else
{
(C_teacher*) user = new C_teacher[50];
}
}
[解决办法]
错了,应该是:
class A
{
public:
int p;
void *user;
void init();
};
void A::init()
{
if(p==1)
{
user = new C_student[50];
}
else
{
user = new C_teacher[50];
}
}