首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

热点排行