第四次试验报告
班级:计算机1204
姓名:杨天野 学号:20123914 题目一(1)定义一个基类Animal ,有私有整型成员变量age ,构造其派生类dog ,在其成员函数SetAge (int n)中直接给age 赋值,看看会有什么问题,把age 改为公有成员变量,还回有问题吗?编程试之。
源程序:
#include
using namespace std;
class Animal
{
private:
int age;
};
class dog:public Animal
{
public:
SetAge(int n);
};
dog::SetAge (int n)
{
age = n;
}
int main()
{
dog d1;
d1.SetAge (90);
return 0;
}
截屏:
错误:‘age ’ : cannot access private member declared in class ‘Animal ’
改为公有变量时:
源程序:
#include
using namespace std;
class Animal
{
public:
};
class dog:public Animal
{
public:
}; SetAge(int n); int age;
dog::SetAge (int n)
{
}
int main()
{
}
截图:
dog d1; d1.SetAge (90); return 0; age = n;
题目二:
(2)定义一个基类BaseClass, 有整型变量Number ,构造其派生类DerivedClass ,观察构造函数和析构函数的执行情况。
源程序:
#include
using namespace std;
class baseclass
{public:
baseclass()
{cout
~baseclass()
{cout
private:
};
class DerivedClass:public baseclass
{public:
DerivedClass()
{cout
~DerivedClass()
{ cout
}};
int main()
{DerivedClass n;
return 0;
}
截图: int Number;
题目三:
(3)定义一个车(vehicle )基类,具有Maxspeed 、Weight 等成员,Run 、Stop 等成员函数,由此派生出自行车(bicycle )类、汽车(motorcar )类。自行车(bicycle )类有高度(Height )等属性,汽车(motorcar )类有座位数(SeatNun )等属性。从bicycle 和motorcar 派生出摩托车(motorbicycle )类,在继承过程中,注意把vehicle 设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问题?编程试之。
(4)编写程序定义一个车(vehicle )基类,由此派生出自行车(bicycle )类、汽车(motorcar )类,注意把vehicle 派生为虚基类。再从bicycle 和motorcar 派生出摩托车(motorcycle )类,在main()函数中测试这个类。程序名:lab7_3.cpp.
源程序:
#include
using namespace std;
class vehicle
{
private:
int a;
};
class bicycle:virtual public vehicle
{};
class motorcar:virtual public vehicle
{};
class motorcycle:public bicycle,public motorcar
{};
int main()
{
} motorcycle m; cout
编译成功后,把vehicle 设置为非虚基类,再编译一次,此时系统会报错,无法编译成功。这是因为若不把vehicle 设置为虚基类,会出现二义性错误,该程序不能成功编译。
#include
using namespace std;
class vehicle
{
private:
};
class bicycle: public vehicle
{
};
class motorcar: public vehicle
{
};
class motorcycle:public bicycle,public motorcar
{
}; int a;
int main()
{
}
并没有出现无法编译的情况,只是出现了一个警告!
motorcycle m; cout
实验感悟:
在这次实践中,是我更加深刻的了解了继承与派生的一些基本做法,学习到了课堂上学不到的东西,亲身实践其中,并乐在其中,为我又一次学习并掌握了新的知识而高兴。在这里,我要特别感谢那些在这次实践中给我帮助的老师和同学,谢谢你们了!!