谢谢,帮编写一下

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:10:06
2.有一个汽车类vehicle,将它作为基类派生出小车类car、卡车类truck;
请定义这些类vehicle、car、truck;并定义一个虚函数用来显示每辆车的信息(如小车输出“I am a car.”, 卡车输出“I am a truck.”)。
我想问一下如果基类的那个构造函数要是不用那个vitural的话,和用那个的话有什么区别,谁知道?

#include <iostream.h>

class vehicle
{
public:
virtual void display()=0;
};

class car:public vehicle
{
public:
void display()
{
cout<<"I am a car."<<endl;
}
};

class truck:public vehicle
{
public:
void display()
{
cout<<"I am a truck."<<endl;
}
};

补充:
virtual是英文意思是“虚的”
它可以修改整个类,或者类在某个函数。
这就是我们说的“虚基类”和“虚函数”
虚基类,跟非虚的类的区别是:虚基类不能定义对象,必须派生成非虚的类之后,才能用非虚的类去定义对象
基类中虚函数的功能是:让派生类也可以定义同名同参数的函数,否则编译会出错的

构造函数是不能声明成虚函数的,参见:
http://topic.csdn.net/u/20070624/09/e5835381-c631-4601-9e00-46a3c43c3387.html

#include <iostream>
using namespace std;

class vehicle
{
public :
vehicle(){}