- 204
- 0
- 约1.21万字
- 约 17页
- 2017-05-19 发布于江西
- 举报
多态和虚函数习题与答案_课后习题答案
概念填空题
1.1 C++支持两种多态性,分别是 编译时 和 运行时 。
1.2在编译时就确定的函数调用称为 静态联编 ,它通过使用 函数重载,模板等 实现。
1.3在运行时才确定的函数调用称为 动态联编 ,它通过 虚函数 来实现。
1.4虚函数的声明方法是在函数原型前加上关键字 virtual 。在基类中含有虚函数,在派生类中的函数没有显式写出virtual关键字,系统依据以下规则判断派生类的这个函数是否是虚函数:该函数是否和基类的虚函数 同名 ;是否与基类的虚函数 参数个数相同、类型 ;是否与基类的虚函数 相同返回类型 。如果满足上述3个条件,派生类的函数就是 虚函数。并且该函数 覆盖 基类的虚函数。
1.5当通过 引用 或 指针 使用虚函数时,C++会在与对象关联的派生类中正确的选择重定义的函数。实现了 运行时 时多态。而通过 对象 使用虚函数时,不能实现运行时时多态。
1.6 纯虚函数是一种特别的虚函数,它没有函数的部分,也没有为函数的功能提供实现的代码,它的实现版本必须由给出,因此纯虚函数不能是。拥有纯虚函数的类就是类,不能。如果纯虚函数没有被重载,则派生类将继承此纯虚函数,即该派生类也是。虚函数虚函数虚函数当你动态申请一个对象时,并且把这个对象的指针赋值给基类,这时当你用这个基类指针释放内存时,就有用了,因为这样可以用多态性原理调用对象实际的析构函数来析构内存。using namespace std;
class CPen
{
public:
CPen(int weight) : m_weight(weight)
{
cout construct Cpen object.\n;
}
virtual ~CPen()
{
cout destruct CPen object\n;
}
//~CPen()
//{
// cout destruct CPen object\n;
//}
void PrintWeight() const
{
cout weight = m_weight;
}
private:
int m_weight;
};
class CShape
{
public:
int m_length;
int m_thickness;
int m_colour;
};
class CPencil : public CPen
{
public:
CPencil(int weight, int length, int thickness, int colour) : CPen(weight)
{
m_shapePtr = new CShape;
m_shapePtr-m_length = length;
m_shapePtr-m_thickness = thickness;
m_shapePtr-m_colour = colour;
//m_weight = weight; error
cout construct CPencil object.\n;
}
~CPencil()
{
cout destruct CPencil\n;
delete m_shapePtr;
}
void ShowInfo() const
{
cout I am a pencil: ;
PrintWeight();
cout length = m_shapePtr-m_length thickness = m_shapePtr-m_thickness
colour = m_shapePtr-m_colour endl;
}
private:
CShape *m_shapePtr;
};
int _tmain(int argc, _TCHAR* argv[])
{
CPen *penPtr = new CPencil(10, 11, 12
您可能关注的文档
最近下载
- 元素周期表高清.pdf VIP
- 2025广东新人教版七年级英语下学期月考测试卷.docx VIP
- 2025美国心脏协会和美国儿科学会新生儿复苏、儿童基础生命支持和儿童高级生命支持指南更新解读.pptx VIP
- 物业费测算模板表.xls VIP
- 2025护理法律法规运用试题及答案.docx VIP
- (2025年)易制毒易制爆危险化学品培训试题(含答案).docx VIP
- 经鼻高流量氧疗护理(2025版).pptx VIP
- 广东省深圳市2022届高三第一次模拟考试化学试题及参考答案.pdf VIP
- 16CG2716CJ72-1 预制及拼装式轻型板-轻型兼强板(JANQNG).docx VIP
- 江西省2024年五方面人员考试真题及答案.docx VIP
原创力文档

文档评论(0)