车(motorcar)类,自行车类具有高度(Height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和motorcar类派生出摩托车(motorcycle )类,在继承过程中,注意把vehicle设置为虚基类。如果不把设置为虚基类,会有什么问题编程试试看。 实验结果:
1、error C2248: 'age' : cannot access private member declared in class 'Animal'
改正方案:将Animal类中私有成员age换成公共成员。 2、构造基类对象!
构造派生类对象! 析构派生类对象! 析构基类对象!
3、Now it is running! Now it has stopped!
//如果vehicle不是虚基类,有错误:
error C2385: 'motorcycle::Run' is ambiguous …… 源程序:
1、#include
public: Animal(){}; ~Animal(){}; };
class Dog : private Animal { public: Dog(){}; ~Dog(){};
void SetAge(int n){ age = n;} }; int main() { Dog a; (10); return 0; }
2、#include
BaseClass() { cout << \构造基类对象!\ ~BaseClass() { cout << \析构基类对象!\ };
class DerivedClass : public BaseClass { public:
DerivedClass() {cout << \构造派生类对象!\ ~DerivedClass() {cout << \析构派生类对象!\ }; int main() {
DerivedClass d; }
3、nclude
vehicle(){MaxSpeed=0; Weight=0;};
~vehicle(){};
void Run() {cout << \ void Stop() {cout << \ };
class bicycle : virtual public vehicle { private: int Height; public: bicycle(){}; ~bicycle(){}; };
class motorcar : virtual public vehicle { private: int SeatNum; public:
motorcar(){}; ~motorcar(){}; };
class motorcycle : public bicycle , public motorcar {
public:
motorcycle (){}; ~motorcycle (){}; }; int main() {
motorcycle a; (); (); }
相关推荐: