cpp面向对象之多态 2024-09-12 多态分为两类 静态多态:函数重载 和 运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 - 编译阶段确定函数地址 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 ...More
C++子类父类构造的顺序 2024-09-11 原因: 子类构造函数中的某些初始化可能是基于父类的,所以规定构造在类层次的最根处开始,而在每一层,首先调用基类构造函数,然后调用成员对象构造函数 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <iostream>using namespace std;class Base{public: Base() { cout << "Base构造函数!" << endl; } ~Base() { cout << "Base析构函数!" << endl; }};class Son:public Base{public: Son() { cout << "Son构造函数!" << endl; } ~Son() { cout << "Son析构函数!" << endl; }};void test01(){ // 继承中的构造和析构顺序如下: // 先构造父类,再构造子类,析构的顺序与构造的顺序相反 Son s; // Base构造函数! // Son构造函数! // Son析构函数! // Base析构函数!}int main() { test01();}
继承方式 2024-09-11 C++ 中有三种继承方式:公有继承、保护继承、私有继承 父类中私有成员,子类都是不可以访问的 公有继承,父类访问类型不变 保护继承,把除私有以外的变为保护 私有继承,全都变成私有 ...More
cpp内存模型 2024-09-07 内存分区模型C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 ...More