c++面向对象实验报告 下载本文

车(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 using namespace std; class Animal { private: int age;

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 using namespace std; class BaseClass { public:

BaseClass() { cout << \构造基类对象!\ ~BaseClass() { cout << \析构基类对象!\ };

class DerivedClass : public BaseClass { public:

DerivedClass() {cout << \构造派生类对象!\ ~DerivedClass() {cout << \析构派生类对象!\ }; int main() {

DerivedClass d; }

3、nclude using namespace std; class vehicle { private: int MaxSpeed; int Weight; public:

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; (); (); }