一、类的继承与类的派生 继承和派生是人们认识客观世界的过程。在程序设计方法中,人们追求代码复用(这是提高软件开发效率的重要手段),将继承和派生用于程序设计方法中,从而有了面向对象程序设计的重要特点。C++对代码复用有很强的支持, “继承”就是支持代码复用的机制之一。 通过已有的类建立新类的过程,叫作 ...
分类:
编程语言 时间:
2020-06-11 13:19:38
阅读次数:
64
#include<iostream> using namespace std; class Base { public: Base() { m_A = 100; } void func() { cout << "Base func()调用" << endl; } void func(int a) { ...
分类:
编程语言 时间:
2020-03-13 20:24:48
阅读次数:
67
派生类覆盖基类成员 覆盖 派生类可以定义一个和基类成员同名的成员这叫覆盖 在派生类访问这类成员时,缺省的情况是访问派生类中定义的成员 要在派生类中访问由基类定义的同名成员时,要用作用域符号 真实编程中不应使派生类和基类有同名成员变量,但同名成员函数很常见 例有 基类, 派生类,二者都有 函数,则要用 ...
分类:
编程语言 时间:
2020-02-13 00:14:24
阅读次数:
74
继承的基本概念 + 继承和派生 继承概念 派生类的访问控制(继承三种方式、类三种访问控制、三看原则)综合训练 继承中的构造和析构 + 类型兼容性原则 + 继承中的构造和析构 + 继承中同名成员函数、成员变量处理方法 + 继承中的static关键字 + 继承概念 + 派生类的访问控制(继承三种方式、类 ...
分类:
编程语言 时间:
2019-12-22 10:35:56
阅读次数:
71
虚函数的几点说明: 1. 当一个成员函数定义为虚函数时,其派生类中的同名函数也自动为虚函数。无论其是否添加了 virtual 关键字。 为了能良好的阅读代码,请加上。 2. 父类的虚函数,就是为了让子类中的同名成员函数覆盖。这样,父类对象的指针就可以指向子类对象,并调用子类的同名函数。 3. 纯虚函 ...
分类:
编程语言 时间:
2019-12-01 16:37:18
阅读次数:
97
继承体系下同名成员函数的三种关系 重载 重写(覆盖) 重定义(隐藏) 重载 C++中函数重载达到的效果: 调用函数名相同的函数,根据实参的类型和个数选择相应的实现函数体执行。 函数重载是一种静态多态,或者称之为静态联编、静态绑定、静态决议,其实都一样。 重写/覆盖 在子类中定义一个与父类中完全相同的 ...
分类:
编程语言 时间:
2019-05-17 22:01:17
阅读次数:
194
兼容性: 1. 子类对象可以直接赋值和初始化父类对象。 2. 父类对象指针可以直接指向子类对象。 3. 父类对象引用可以直接引用子类对象。 当使用父类指针或引用指向子类对象时: 1. 子类对象退化为父类对象 2. 只能访问父类中定义的成员。 3. 可以直接访问被子类覆盖的同名成员。 函数重写: 1. ...
分类:
其他好文 时间:
2019-05-11 12:12:57
阅读次数:
120
C++的常成员函数与同名成员函数重载时,该如何显式调用常成员函数? 具体的一个小例子: 可用如下方法调用常成员函数 void fun() const : ...
分类:
编程语言 时间:
2019-02-02 17:09:56
阅读次数:
200
在C++中,继承方式共有3种: public继承 -指父类的成员(变量和函数)访问级别,在子类中保持不变 private继承 -指父类的成员,在子类中变为private私有成员. -也就是说子类无法访问父类的所有成员 protected继承 -指父类的public成员 ,在子类中变为protecte ...
分类:
编程语言 时间:
2018-09-19 12:50:10
阅读次数:
213
1、虚函数 原因:通过指针调用成员函数时,只能访问到基类的同名成员函数。在同名覆盖现象中,通过某个类的对象(指针及引用)调用同名函数,编译器会将该调用静态联编到该类的同名函数,也就是说,通过基类对象指针是无法访问派生类的同名函数的,即使这个指针是用派生类对象来初始化的。 虚函数是C++中用于实现多态 ...
分类:
编程语言 时间:
2018-08-03 19:46:48
阅读次数:
123