C++编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 10:29:51
#include<iostream.h>
class vehicle
{
public:
vehicle(int x,float y)
{
wheels=x;
weight=y;
}
void print()
{cout<<"qichegeshu"<<wheels<<"qichechezhong"<<weight<<endl;}
protected:
int wheels;
float weight;
};
class car: protected vehicle
{
public:
car() //问题在这里报错
{cin>>passenger_load;}
void print()
{
vehicle::print();
cout<<"xiaoqicherenshu"<<passenger_load<<endl;
}

protected:
int passenger_load;
};
class truck:protected vehicle
{
public:
truck()
{cin>>passenger_load>>payload;}
void print()
{
cout<<"kacherenshu"<<passenger_load<<"kachezhongliang"<<payload<<endl;
}
protected:
int passenger_load;
float p

楼上的兄弟错了,car()之前调用的是vehicle()不带参数的,因为你vehicle没有定义默认构造函数,所以出错了,在vehicle里面定义一个默认构造函数就可以了

你的C++是什么版本啊,你把C++升级到C++srevice pack5就好了,盗板的C++都有这个毛病

你的基类有构造函数:
vehicle(int x,float y)
{
wheels=x;
weight=y;
}
你的子类构造函数:
car() //问题在这里报错
{cin>>passenger_load;}
你的mian函数中有:
car b;
这句话会建立一个对象,同时调用构造函数car(),由于类car是vehicle的子类,所以在调用car()之前还要调用基类构造函数vehicle(int x,float y),可是你没有指定x,y是什么值。
解决办法:
car() :vehicle( 1, 2)
{cin>>passenger_load;}