有一个交通工具类vehicle,将它作为基类派生出汽车类motor_ vehicle,
再将汽车类motor_ vehicle 作为基类派生出小汽车类car和卡车类truck,
声明这些类并定义一个虚函数用来显示各类信息。
#include <iostream>
using namespace std;
class vehicle
{public:
virtual void message( )
{ cout << "vehicle message " << endl; }
private:
int wheels;
float weight;
};
class motor_vehicle: public vehicle
{public:
void message( ){ cout << " motor_ vehicle message " << endl; }
private:
int passengers;
};
class car: public motor_vehicle
{public:
void message( ){ cout << "car message " << endl; }
private:
float engine;
};
class truck: public motor_vehicle
{public:
void message( ){ cout << " truck message " << endl; }
private:
int loadpay ;
};
int main( )
{ vehicle v, *p = NULL;
motor_vehicle m;
car c;
truck t;
p = &v;
p -> message( );
p = &m;
p -> message( );
p = &c;
p -> message( );
p = &t;
p -> message( );
return 0;
}
再将汽车类motor_ vehicle 作为基类派生出小汽车类car和卡车类truck,
声明这些类并定义一个虚函数用来显示各类信息。
#include <iostream>
using namespace std;
class vehicle
{public:
virtual void message( )
{ cout << "vehicle message " << endl; }
private:
int wheels;
float weight;
};
class motor_vehicle: public vehicle
{public:
void message( ){ cout << " motor_ vehicle message " << endl; }
private:
int passengers;
};
class car: public motor_vehicle
{public:
void message( ){ cout << "car message " << endl; }
private:
float engine;
};
class truck: public motor_vehicle
{public:
void message( ){ cout << " truck message " << endl; }
private:
int loadpay ;
};
int main( )
{ vehicle v, *p = NULL;
motor_vehicle m;
car c;
truck t;
p = &v;
p -> message( );
p = &m;
p -> message( );
p = &c;
p -> message( );
p = &t;
p -> message( );
return 0;
}