第十三章编程练习答案
13.1根据Cd基类,完成派生出一个Classic类,并测试
//13.1根据Cd基类,完成派生出一个Classic类,并测试
#include
#include
using namespace std;
// base class
class Cd
{
char performers[50];
char label[20];
int selections; ...
分类:
编程语言 时间:
2014-06-04 23:45:54
阅读次数:
490
标准C++没有垃圾回收机制的原因:1)
没有共同基类C++是从C发展而成,同意直接操作指针,同意将一个类型转换为还有一个类型,对于一个指针无法知道它真正指向的类型;而Java或C#都有一个共同基类2)
系统开销垃圾回收所带来的系统开销,不符合C++高效的特性,使得不适合做底层工作3) 耗内存C++产...
分类:
编程语言 时间:
2014-06-02 11:09:43
阅读次数:
248
OOP 3大特性:数据抽象,继承,动态绑定
3中访问标号
protected, public, private 对比
用类进行数据抽象;用继承类继承基类的成员,实现继承;通过将基类相应函数声明为virtual,是编译器在运行时决定调用基类函数or派生类函数 完成动态绑定,即表现多态性。
多态性:利用继承和动态绑定,通过基类指针和引用来表现。
动态绑定两个条...
分类:
其他好文 时间:
2014-06-01 18:23:29
阅读次数:
440
用于大型程序的工具--多重继承与虚继承[续2]七、特殊的初始化语义 从具有虚基类的类继承的类对初始化进行特殊处理:在虚基类中,由最低层派生类的构造函数初始化虚基类。在ZooAnimal示例中,使用常规规则将导致Bear 类和 Raccoon类都试图初始化Panda对象的ZooAnimal类部分。 虽然由最低层派生类初始化虚基类,但是任何直接或间接继承虚基类的类一般也必须为该基类提供自己的初始化式。...
分类:
编程语言 时间:
2014-06-01 16:18:16
阅读次数:
353
用于大型程序的工具--多重继承与虚继承引言: 大多数应用程序使用单个基类的公用继承,但是,在某些情况下,单继承是不够用的,因为可能无法为问题域建模,或者会对模型带来不必要的复杂性。 在这些情况下,多重继承可以更直接地为应用程序建模。多重继承是从多于一个直接基类派生类的能力,多重继承的派生类继承其所有父类的属性。一、多重继承1、定义多个类 为了支持多重继承,扩充派生列表:class Bear : p...
分类:
编程语言 时间:
2014-06-01 15:59:01
阅读次数:
393
如果自下而上仰视类的继承层次结构,那么位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,人们只将它作为派生其他类的基类,而不作为想使用的特定的实例类。...
分类:
编程语言 时间:
2014-06-01 15:07:53
阅读次数:
301
用于大型程序的工具--多重继承与虚继承[续1]四、多重继承下的类作用域 成员函数中使用的名字和查找首先在函数本身进行,如果不能在本地找到名字,就继续在本类中查找,然后依次查找每个基类。在多重继承下,查找同时检察所有的基类继承子树 —— 在我们的例子中,并行查找 Endangered子树和Bear/ZooAnimal子树。如果在多个子树中找到该名字,则那个名字的使用必须显式指定使用哪个基类;否则,该...
分类:
编程语言 时间:
2014-06-01 14:44:35
阅读次数:
367
本程序实现一个责任链模式查询人名的资料。
开始都是查询第一个人,问其是否有某人的资料,如果有就返回结果,如果没有第一个人就会询问第二个人,第二个人的行为和第一个人的行为一致的,然后一致传递下去,直到找到答案,或者是最后没有资料,返回。
首先创建一个基类:
//base class
class Person
{
public:
virtual void getInfo(string...
分类:
其他好文 时间:
2014-06-01 08:54:15
阅读次数:
286
虚函数与纯虚函数:
虚函数:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,virtual 函数返回类型 函数名(参数表){函数体;}
,实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。注意虚函数在基类中是有定义的,即便定义是空。 纯虚函数...
分类:
编程语言 时间:
2014-05-31 18:36:09
阅读次数:
354
把类的公共方法提取出来成为一个抽象基类,这就是接口即接口是对外的部分,继承接口的类是实现部分接口的唯一目的是强制派生类以虚函数的方式实现组件接口的方法接口完整的描述了C++中Vtable的布局COM只能通过一个Vtable指针来提供对它组件的访问,对组件实现的访问是不能的COM的核心概念----通过...
分类:
编程语言 时间:
2014-05-31 18:24:31
阅读次数:
276