实验5:继承与派生
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
3.#include <iostream>
using namespace std;
class vehicle
{
private:
int MaxSpeed;
int Weight;
public:
vehicle(){MaxSpeed=0; Weight=0;};
~vehicle(){};
void Run() {cout << "Now it is running!" << endl; }
int main()
{Leabharlann Baidu
motorcycle a;
();
();
}
{
private:
int SeatNum;
public:
motorcar(){};
~motorcar(){};
};
class motorcycle : public bicycle , public motorcar
{
public:
motorcycle (){};
~motorcycle (){};
};
实验步骤:
1.编写程序定义Animal,成员变量age定义为私有的。构造其派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现错误提示:程序名
2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名
class DerivedClass : public BaseClass
{
public:
DerivedClass() {cout << "构造派生类对象!" << endl;}
~DerivedClass() {cout << "析构派生类对象!" << endl;}
};
int main()
{
DerivedClass d;
{
public:
int age;
public:
Animal(){};
~Animal(){};
};
class Dog : private Animal
{
public:
Dog(){};
~Dog(){};
void SetAge(int n){ age = n;}
};
int main()
{
Dog a;
(10);
实验结果:
C2248:’age’cannot access private member declared in class‘Animal’
2.构造基类对象!
构造派生类对象!
析构派生类对象!
析构基类对象!
源代码:
1.#include <iostream>
using namespace std;
class Animal
void Stop() {cout << "Now it has stopped!" << endl; }
};
class bicycle :virtualpublic vehicle
{
private:
int Height;
public:
bicycle(){};
~bicycle(){};
};
class motorcar :virtualpublic vehicle
2.定义一个基类BaseClass,有整形成员变量Number,构造其派生类,观察其构造函数和析构函数的执行情况。
3.定义一个车类(vehicle)基类,有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(Seatnum)等属性。,在继承和过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题变成试试看。
}
2.#include <iostream>
using namespace std;
class BaseClass
{
public:
BaseClass() { cout << "构造基类对象!" << endl;}
~BaseClass() { cout << "析构基类对象!" << endl;}
};
3.用debug功能跟踪程序的执行过程,观察基类和派生类的构造函数和析构函数的的执行过程。
4.编写程序定义车类(vehicle),由此派生出自行车(bicycle)类、汽车(motorcar),把vehicle设置为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名。编译成功后把vehicle设置成非虚基类,在编译一次,此时系统报错,无法编译成功。原因是若不把vehicle设置为虚基类,会产生二义性错误。摩托车(motorcycle)
实验项目:继承与派生
实验目的:
1.学习定义和使用类的继承关系,定义派生类
2.熟悉不同继承方式下对基类成员的访问控制
实验任务:
1.定义一个基类Animal,有私有整形成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗
3.#include <iostream>
using namespace std;
class vehicle
{
private:
int MaxSpeed;
int Weight;
public:
vehicle(){MaxSpeed=0; Weight=0;};
~vehicle(){};
void Run() {cout << "Now it is running!" << endl; }
int main()
{Leabharlann Baidu
motorcycle a;
();
();
}
{
private:
int SeatNum;
public:
motorcar(){};
~motorcar(){};
};
class motorcycle : public bicycle , public motorcar
{
public:
motorcycle (){};
~motorcycle (){};
};
实验步骤:
1.编写程序定义Animal,成员变量age定义为私有的。构造其派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现错误提示:程序名
2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名
class DerivedClass : public BaseClass
{
public:
DerivedClass() {cout << "构造派生类对象!" << endl;}
~DerivedClass() {cout << "析构派生类对象!" << endl;}
};
int main()
{
DerivedClass d;
{
public:
int age;
public:
Animal(){};
~Animal(){};
};
class Dog : private Animal
{
public:
Dog(){};
~Dog(){};
void SetAge(int n){ age = n;}
};
int main()
{
Dog a;
(10);
实验结果:
C2248:’age’cannot access private member declared in class‘Animal’
2.构造基类对象!
构造派生类对象!
析构派生类对象!
析构基类对象!
源代码:
1.#include <iostream>
using namespace std;
class Animal
void Stop() {cout << "Now it has stopped!" << endl; }
};
class bicycle :virtualpublic vehicle
{
private:
int Height;
public:
bicycle(){};
~bicycle(){};
};
class motorcar :virtualpublic vehicle
2.定义一个基类BaseClass,有整形成员变量Number,构造其派生类,观察其构造函数和析构函数的执行情况。
3.定义一个车类(vehicle)基类,有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(Seatnum)等属性。,在继承和过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题变成试试看。
}
2.#include <iostream>
using namespace std;
class BaseClass
{
public:
BaseClass() { cout << "构造基类对象!" << endl;}
~BaseClass() { cout << "析构基类对象!" << endl;}
};
3.用debug功能跟踪程序的执行过程,观察基类和派生类的构造函数和析构函数的的执行过程。
4.编写程序定义车类(vehicle),由此派生出自行车(bicycle)类、汽车(motorcar),把vehicle设置为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名。编译成功后把vehicle设置成非虚基类,在编译一次,此时系统报错,无法编译成功。原因是若不把vehicle设置为虚基类,会产生二义性错误。摩托车(motorcycle)
实验项目:继承与派生
实验目的:
1.学习定义和使用类的继承关系,定义派生类
2.熟悉不同继承方式下对基类成员的访问控制
实验任务:
1.定义一个基类Animal,有私有整形成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗