多态* 多态是c++ 面向对象三大特性之一 多态分为两类: 静态多态:函数重载,运算符重载 属于静态多态,复用函数名 动态多态: 派生类 和 虚函数实现运行时多态 静态多态和动态多态的区别: 静态多态的函数地址早绑定 - 编译阶段确定函数地址 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 方法的重写和重载的比较: 来自JAVA 笔记 多态基本…
127讲 继承的语法、继承方式 继承的语法 #include <iostream> #include "string" using namespace std; class base_giegie { public: void ikun() { cout << "小黑子,又在黑人家giegie …
123讲,递增运算符的重载、赋值运算符的重载、关系运算符重载、函数调用运算符重载 递增运算符重载++ 注意传参类型和返回类型,以及要留意传参是传引用还是对象。 #include <iostream> #include "string" using namespace std; class Integer { frie…
121讲重载、加号运算符重载、左移运算符重载 运算符重载 概念:对于已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型 解决:对于内置的数据类型,编译器知道如何进行运算,那么自定义类型呢? #include <iostream> #include "string" using namespace std…
118讲 友元-全局函数做友元、友元类、成员函数做友元 全局函数做友元 友元打穿了访问权限,让特殊的函数或者成员能访问到私有属性。 //goodGay 全局函数是 Building的好基友,能访问,。让我访问。(打穿私有成员权限) friend void goodGay(Building* building); #include<iostre…
静态成员 静态成员变量 笔记见前面112讲部分 静态成员函数 静态成员函数可以访问静态成员变量。 静态成员函数 不可以 访问非静态成员变量。!!!!tip: 因为静态成员函数,不知道访问类的哪一个对象。 #include<iostream> #include"string" using namespace std; …
C++ 对象模型、this 指针 、空指针调用成员函数 、const修饰成员函数 成员变量 和成员函数分开存储 在C++ 中,类内的成员变量和成员函数分开存储。 只有非静态成员变量才属于类的对象上。 #include<iostream> #include"string" using namespace std; cl…
代码如图: Tip: 在类中 调用另外的类的初始化需要使用 “ 初始化列表 ” ,不知道为何使用传统显式/隐式定义会报错。。 #include <iostream> #include "string" using namespace std; class Phone { public: Phone(string pN…
拷贝构造函数调用时机 C++ 中拷贝构造函数调用时机通常有三种情况: 使用一个已经创建完毕的对象来初始化一个新对象 值传递的方式给函数参数传值 以值方式返回局部对象 详细笔记请看下方代码 笔记全在代码之中!! 注意: 值传递的时候是生成副本,会(自动)调用拷贝函数。 返回值时,也是返回副本,也会(自动)调用拷贝函数。 #include <io…
对象的初始化和清理 对象的 初始化和清理 是两个非常重要的安全问题 c++ 利用 构造函数 和 析构函数 解决上述问题,这两个函数编译器会自动调用,完成对象初始化和清理工作。 编译器会提供默认的空实现 的构造函数和 析构函数 构造函数:主要用于在创建对象时 为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。 析构函数:主要用于对象销毁前…