我想初始化一个数组。没有编译错误,但是当我运行该程序时,它显示第一个cout
,然后停止运行。初始化数组对象
这里是我的代码:
class A {
string first_name ;
string last_name;
int ID;
public:
virtual void print()=0;
};
class B :public A{
string phone_number;
.......
void print(){
........
}
};
class D{
A** a;
int size;
public:
D(){
size = 10;
a = new A *[size];
for(int i = 0 ; i<size ; i++){
a[i] = NULL;
}
}
void Add(){
for(int i = 0 ; i<size ; i++){
A * a2 = a[i];
B * b = dynamic_cast<B*>(a2);
int id;
cout<<"enter the id";
cin>>id
b->set_ID(id);
// i did the same (cout , cin statements) for the first name and last name.
b->set_first_name();
b->last_name();
}
};
这是不正确的?
你的意思是打印“输入ID”,然后输入一个ID后,它不会继续? –
当你用'a2'初始化'a2'时,'a'中的所有指针都是未初始化的。 – chris
你 格式化 / 压痕 可以 使用 一些 工作。 –