随笔分类 - C++
摘要:📕运算符重载 1.复数类 运算符重载目的:使对象运算表现得和编译器内置类型一样; 复数类例子 #include<iostream> using namespace std; class CComplex{ public: CComplex(int r = 0, int l = 0): mreal(
阅读全文
摘要:📕模板编程 函数模板 模板意义:对类型也进行参数化; 函数模板:是不编译的,因为类型不知道 模板的实例化:函数调用点进行实例化,生成模板函数 模板函数:这才是要被编译器所编译的 函数模板、模板的特例化、非模板函数(普通函数):函数模板只是一个模板,模板特例化是明确类型,还有普通函数;三者不是重载关
阅读全文
摘要:📕面向对象 类和对象、this指针 不用做太多笔记,都可以看初识C++的笔记; 记住👀:声明后面都要加“;”,比如声明方法和变量还有class结束的地方;而实现函数出来的地方是不需要加“;” 为什么要按最大字节对齐?和内存池相关 掌握构造函数和析构函数 看初始C++笔记enough; 掌握对象得
阅读全文
摘要:运算符重载 运算符重载基础 函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。**运算符重载(Operator Overloading)**也是一个道理,同一个运算符可以有不同的功能。 例子:用+号实现复数加法运算;成员函数重载运算符 #in
阅读全文
摘要:初探C++ c++介绍 c++支持面向过程编程(如c),面向对象编程(OOP)和泛型编程; c/c++编译器比较多,window下是微软编译器cl.exe,Linux机下是GCC编译器,mac下是Clang编译器(是xcode默认编译器);可以了解一个编译器和LLVM架构的关系什么是LLVM 类和对
阅读全文
摘要:📕深入学习C++还必须掌握的基础 掌握形参带默认的函数 1.给默认值方向:从右向左给默认值; 2.调用效率:如果传默认值或者立即数(不需要从容器或内存取取的数字)的话都是直接将数字直接push进栈;没有mov汇编指令的操作;(面试回答要往汇编上描述) 3.默认值给的地方:定义和声明处均可以给默认值
阅读全文
摘要:📕处理多继承的坑 理解虚基类和虚继承 **虚基类: ** 被虚继承的类,就称为虚基类。 virtual作用: 1.virtual修饰了成员方法是虚函数。 2.可以修饰继承方式,是虚继承。被虚继承的类就称为虚基类。 vfptr:一个类有虚函数,这个类生成的对象就有vfptr,指向vftable。 v
阅读全文
摘要:📕深入掌握OOP最强大的机制 1. 继承的基本意义 类与类之间的关系:①组合:a part of ... 一部分的关系;②继承: a kind of ... 属于同一种的关系; 继承的本质:a. 代码的复用(相同的特征行为抽象出来作为基类) 三种继承关系以及各种注意点看初识C++中的继承笔记; 访
阅读全文
摘要:多态和虚函数 多态和虚函数的快速认知 相信看完上个笔记应该知道:通过基类指针只能访问派生类的成员变量,但是不能访问派生类的成员函数,因为调用函数是通过对象类型去调用的,而不是通过指针; 例子: #include <iostream> using namespace std; //基类People c
阅读全文
摘要:引用、继承与派生 引用介绍 首先外面要知道:参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上,对于聚合类 型(复杂类型,类似结构体和类这些)消耗的内存可能会非常大。 引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够找到这份数
阅读全文
摘要:类和对象 创建方法 第一种式直接声明: class Student { private: string name; public: Student(string name) { this->name = name; } } //声明: Student lu;//不带初始化 //带初始化; Stude
阅读全文

浙公网安备 33010602011771号