C++函数模板

2015-12-05
阅读 2 分钟
2.1k
为什么要有这玩意 泛型设计:算法不依赖数据结构 当交换两个变量值时,我们会这样写 {代码...} 如果还是其他数据类型,那就需要写n的相似的函数 函数模板就是为了解决这个问题 {代码...} 定义 {代码...} 函数模板重载 {代码...} 哪个函数会被执行 当调用2个int的swap时,哪个会被执行 {代码...} 1、 参数完全匹配的普通...

C++继承和多态

2015-12-04
阅读 7 分钟
3.3k
继承 语法 {代码...} 子类对象的内存空间 一个类对象的内存空间 = 所有成员变量所占空间的总和 一个子类对象的内存空间 = 所有父类成员变量所占空间的总和 + 自身成员变量所占空间的总和 对象所占空间不包含静态成员变量 子类中,父类成员变量在内存中的位置靠前 类中存在虚函数时,会多出一个指针的空间存放虚函数表的...

C++运算符重载

2015-12-03
阅读 4 分钟
2.4k
为什么要有这玩意 定义一个复数类,创建两个复数对象。那么想把这两个复数相加,应该怎么办? {代码...} 定义 既然叫运算符重载,那么定义的方式就会跟重载类似 operator运算符,相当于函数名 形参表,就是参数列表 与返回值类型无关,决定是否构成重载的是函数名和参数列表 普通函数 形参表,必须有两个参数 {代码...} ...

C++类型转换构造函数

2015-12-03
阅读 1 分钟
2.3k
为什么要有这玩意 传说中,是为了实现类型的自动转换 定义 只有一个参数,类型任意 意思是,把一个任意类型的变量,自动转换成我这个类型 {代码...}

位运算

2015-12-03
阅读 2 分钟
3.1k
基本概念 适用对象:整数类型变量(char,short,int,long等)作用:改变二进制位 有什么用 判断某一位是否为1 只改变其中一位,其他位不变 快速计算 分类 & 按位与(双目) | 按位或(双目) ^ 按位异或(双目) ~ 按位非(取反)(单目) << 左移(双目) >> 右移(双目) 双目:两个数折...

C++类的相互关联

2015-12-02
阅读 2 分钟
2.3k
方法 其中一个类的hpp,cpp都正常写,也就是hpp引用另一个类,cpp引用自己的hpp 另一个类,hpp中声明关联类,cpp中引用关联类 示例 {代码...} {代码...} {代码...} {代码...} {代码...}

C++常量对象、常量成员函数

2015-12-02
阅读 2 分钟
3.7k
为什么要有这玩意 创建一个不能被修改的对象,还可以做些事情 定义 常量对象 const 对象 变量名; 必须手动创建构造函数,否则成员变量将永远都是垃圾值 {代码...} 常量成员函数 不能调用非常量成员函数,因为调用的函数可能会修改对象 静态成员变量和函数,可以随意调用,因为它们本质上不属于某个类 {代码...} 示例 {代...

C++初始化列表

2015-12-02
阅读 2 分钟
2k
为什么要这玩意 Car类中,包含type对象,这个type对象该怎样初始化?试试在Car的构造函数中初始化 {代码...} 初始化列表就是为了解决重复创建对象的问题 下面采用初始化列表的方式创建对象 {代码...} 定义 {代码...} 调用顺序 封闭类:包含成员对象的类 创建:成员对象 -> 封闭类 消亡:封闭类 -> 成员对象 创建时...

C++静态成员变量和静态成员函数

2015-12-02
阅读 2 分钟
2.3k
为什么要有这玩意 静态成员变量本质是全局变量,静态成员函数本质是全局函数。 将和某些类紧密相关的全局变量和函数写到类里面,看上去像一个整体,易于维护和理解。 {代码...} 定义 在变量或函数前加static关键字 {代码...} 内存 静态成员变量只会创建一个,由所有对象共享 sizeof不会计算静态成员变量 访问 静态成员变量...

C++析构函数

2015-12-01
阅读 1 分钟
2.3k
为什么有这玩意 主要作用:释放new出来的空间 {代码...} 定义 ~类名(){} 没有返回值,没有参数 只能有一个 自定义析构函数后,就不再生成默认的析构函数。默认的析构函数,不会释放new出的内存空间。 {代码...} 调用时机 在一个类生成对象时,会调用构造函数。在一个对象消亡的时,会调用析构函数 {代码...} 参考:C++程...

C++复制构造函数

2015-12-01
阅读 2 分钟
1.6k
为什么要有这玩意 谁知道 定义 复制构造函数,也是构造函数,所以定义的方式相似 标志是,它的第一个参数必须是类的引用,或者类的const引用 不存在重载,即使写了多个复制构造函数,最后被调用的只有一个 默认的复制构造函数,与赋值语句一样,都是值拷贝 {代码...} 调用复制构造函数的三种情况 主动调用 {代码...} 传...

C++内联函数

2015-11-30
阅读 1 分钟
1.9k
为什么要有这玩意 作用:减少函数调用的开销 {代码...} 用法 定义 {代码...} 什么时候用(满足以下至少一条): 函数体很短 函数被多次调用

C++缺省参数

2015-11-30
阅读 1 分钟
2.7k
为什么要有这玩意 在扩充函数功能时,不用修改之前的调用代码 {代码...} 用法 定义函数的时候可以让最右边的连续若干个参数有缺省值 定义 {代码...} 调用 {代码...} 参考:C++程序设计

C++动态内存分配

2015-11-30
阅读 1 分钟
1.9k
分配 关键字:new特点:返回值为,类型的指针 分配变量 P p = new T; P:T* 的指针 T:任意类型名 分配内容大小:sizeof(T) p:存放分配空间的起始地址 {代码...} 分配数组 P p = new T[n]; P:T* 的指针,与分配变量一样 T:任意类型名,与分配变量一样 分配内容大小:n * sizeof(T) p:存放分配空间的起始地址,与分配...

C/C++const用法

2015-11-30
阅读 1 分钟
2.3k
常量 {代码...} 指针 const int * p 或 int const * p 写法:const 在*前作用:指针不能修改所指向的内容,但是可以改变指向 {代码...} int * const p 写法:const 在*后作用:指针可以修改所指向的内容,但是不能改变指向 {代码...} const int * const p 或 int const * const p 写法:前,后,各加一个const作用:指针...