金玟贞电影:C++编程问题

来源:百度文库 编辑:高考问答 时间:2024/04/30 01:03:30
#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 payload;
};
void main()
{ int x;
float y;
cin>>x>>y;
vehicle a(x,y);
car b;
truck c;
c.print();
b.print();
}

car()这里会报错说
'vehicle' : no appropriate default constructor available
请问这是意思?我看了半天书。书上格式和我打的一样。为什么会报错呢?
这个是我自己编的。不是按书上打的。只有格式是按书上对着打。请高手帮忙看看是什么问题。软件我是从猪猪乐园下的。中文版创天。

楼上的兄弟错了,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;}