,如果根据输入不同调用不同的类(子对象)

求助,如果根据输入不同调用不同的类(子对象)classA{public:intpif(p1)C_studentuser[50]//为类C_stude

求助,如果根据输入不同调用不同的类(子对象)
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];
}
}