c++指针数组动态建立问题运行后输出有错

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:44:58
#include<iostream>
#include <string>
using namespace std;

class Zhigong
{
public:

Zhigong(){};
virtual ~Zhigong(){};
virtual void getwage(){};
void shuru();
void display();
protected:
int time;
string name;
int year;
int level;
};

class Assient:public Zhigong
{
public:
void getwage(){cout<<level*year*time*1.0;}
Assient(){};
~Assient(){};
private:
float wage;
};

void Zhigong::shuru()
{
cin>>time;cin>>name;cin>>year;cin>>level;
}

void Zhigong::display()
{
cout<<time<<endl;cout<<name<<endl;cout<<year<<endl; cout<<level<<endl;
}

int main()
{

Zhigong z[2];
Zhigong *zhigong1[2];
for(int i=0;i<2;i++)
zhigong1[i

int main()
{

Zhigong z[2];
Zhigong *zhigong1[2];
for(int i=0;i<2;i++)
zhigong1[i]=new Zhigong();
for( i=0;i<2;i++)
z[i].shuru();
cout<<endl;
for(i=0;i<2;i++)
zhigong1[i]->display();//zhigong1没有赋值,输出当然不不会正确
cout<<endl;
Assient as[2];
for( i=2;i<4;i++)
zhigong1[i]=new Assient();
for(i=0;i<2;i++)
zhigong1[i]->getwage();//zhigong1[0]和zhigong1[1]都不是class Assient,当然不能正确输出了
return 0;

}