摘要:
1、派生类的对象和基类是属于的关系,即 对象 is a X类,对象属于X类。2、多态性的概念:了解多态性之前,要熟悉引用和对象的区别:对象存储在堆中,引用(符)存储在栈中,引用符的值是对象在堆中的地址,因此通过引用符可以轻松地找到对象。一般情况下,引用符和对象属于同一类型,基类的引用指向基类的对象,派生类的引用指向派生类的对象,但是我们知道,派生类对象也属于基类,所以基类引用符可以指向派生类对象。 一个基类的引用符,可以指向多种派生类对象,具有多种不同的形态,这种现象叫多态性。这种方式经常用作设计模式中的工厂模式。 阅读全文
摘要:
怎样理解抽象类(含有至少一个纯虚函数的类)可以用作声明抽象类的指针和引用????? 阅读全文
摘要:
阅读全文
摘要:
在一个基类或派生类的成员函数中,可以直接调用等级中的虚函数。此时,需要根据成员函数中this指针和它所指向的对象来判断调 用的是哪个函数。 阅读全文
摘要:
class Base{protected: Base(){} ~Base(){}public: virtual void print() { cout<<"Base::print()!"<<endl; }};class Derived:public Base{public: Derived(){} ~Derived(){}private: void print() { cout<<"Derived::print()!"<<endl; }};int main(int argc,char*argv[]){ De 阅读全文
摘要:
对于普通成员函数的重载,可表达为下面的方式:1) 在同一个类中重载2) 在不同类中重载3) 基类的成员函数在派生类中重载因此,重载函数的访问是在编译时区分的,有以下三种方法:1.根据参数的特征加以区分,例如: Show(int , char)与Show(char *, float) 不是同一函数,编译能区分。2. 使用“::”加以区分,例如: Circle :: Show有别于Point :: Show 3. 根据类对象加以区分。 ACircle.Show() 调用Circle::Show() APoint.Show() 调用Point :: Show() 这里ACircle和APoint分. 阅读全文
摘要:
1.虚基类的概念 在C++语言中,一个类不能被多次说明为一个派生类的直接基类,但可以不止一次地成为间接基类。这就导致了一些问题。为了方便 说明,先介绍多继承的“类格”表示法。 派生类及其基类可用一有向无环图(DAG)表示,其中的箭头表示“由派生而来”。类的DAG常称为一个“类格”。复杂类格画出来通常更容易理解。例如: 例 5-19 class L { public: int next; … }; class A : public L { }; class B : public L { }; class C : ... 阅读全文