多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都 ...
分类:
编程语言 时间:
2020-06-15 17:45:15
阅读次数:
61
1.关于几种cast: 简单总结: static_cast强制类型转换,基本类型间的类型转换安全,子类转父类安全,父类转子类不安全 reinterpret_cast直接重新解释二进制,非常不安全。 dynamic_cast只能转化指针或引用,并且其指向的对象包含虚函数,其主要作用是在运行期间,可以动 ...
分类:
编程语言 时间:
2020-06-13 15:51:35
阅读次数:
54
关键点一:将虚函数定义为private然后用一个非虚函数来包装它 1 class GameCharacter{ 2 public: 3 int healthValue()const{ 4 ... 5 int retVal = doHealthValue(); 6 ... 7 return retVa ...
分类:
其他好文 时间:
2020-06-11 21:38:34
阅读次数:
56
Base基类和Derived派生类都有print()函数,此时指向派生类对象的基类指针仍旧调用基类print() 将基类print()改为virtual虚函数之后基类指针可以调用派生类print() 所以,当基类函数是虚函数时,指向派生类对象的基类指针调用派生类函数 所以,个人以为,虚函数的作用就是 ...
分类:
编程语言 时间:
2020-06-11 00:43:11
阅读次数:
93
Q_DECL_OVERRIDE也就是c++的override # define Q_DECL_OVERRIDE override 在重写虚函数时会用到, 作用是防止写错虚函数: void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE; ...
分类:
其他好文 时间:
2020-06-09 16:26:57
阅读次数:
58
1、子类调用父类的同名函数(非虚函数) class Base { public: void func(); void func(int i); }; class Element : public Base { public: void func(int i); // 当子类有父类的同名函数 }; i ...
分类:
其他好文 时间:
2020-06-07 23:04:11
阅读次数:
126
一.函数重载 1.函数名相同,参数列表不同(个数,顺序,类型) 2.vritual关键字、调用约定和返回值不做参考 二.函数覆盖(子类重写的虚函数覆盖了虚表中父类的虚函数,多态) 1.子类函数和父类函数声明一致(函数名,调用约定,参数列表,返回值) 2.父类函数有virtual关键字,子类可以不加v ...
分类:
其他好文 时间:
2020-05-24 09:37:43
阅读次数:
54
目标: 1. 代码更加紧凑,所写即所到。 2. 代码层次更直观,直接反映界面窗口层次关系。 3. 不继承类,不重写虚函数,slot接收QEvent。 4. 简单写布局,忘掉api函数。 5. 免去一大堆临时变量的变量名。 思路: operator () (QLayout ) 开始一个布局 opera ...
纯虚函数:函数声明后加=0,无实现。 有纯虚函数的类是抽象类,无法实例化抽象类 子类如果没有重写纯虚函数,那么子类也是抽象类,也无法实例化 用途:规范化接口,强制子类实现某些接口(成员函数) class Animal { public: virtual void Speak() = 0;//有纯虚函 ...
分类:
其他好文 时间:
2020-05-21 21:23:33
阅读次数:
72
纯虚函数 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本 纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分) 纯虚函数声明语法: virtual 类型 函数名(参数表) = 0; #include <iostream> using nam ...
分类:
编程语言 时间:
2020-05-21 19:09:24
阅读次数:
56