string
C语言字符串大小和长度不同
string 定义的字符串大小和长度相同
C++中推荐使用at方法返回单个字符
.append():拼接字符串函数
.erase(0,2 ):从下标0开始删除2个字符
.empty():判断字符串是否为空,空返回1,非空返回0
内联函数
inline关键字修饰的函数
内联函数将函数体中的内容直接展开到主函数进行内容替换(相当于宏定义)
牺牲编译速度换取执行速度
使用注意
代码不超过5行
内部不存在循环、递归等操作
频繁调用的函数
函数重载(多态:静态多态)
C++中允许用同一个函数名定义多个函数
1)同名函数
2)函数标签不同(参数个数与参数类型)
C++的三大特性
1)封装
2)继承
3)多态
静态多态
//函数重载
//运算符重载
动态多态
函数参数的默认值(缺省值)
在函数定义时给参数初始化
不传入参数时参数为默认值
避免和函数重载同时使用,会产生二义性(同一个语句产生歧义,计算机无法分辨)的问题
函数定义和函数声明时不能同时定义默认值
当一个参数设定了默认值后,其右边所有的参数都必须设定默认值
对于函数中有多个参数的情况下,少几个参数的默认值,调用时就得写几个参数
哑元函数
如果一个函数的参数只有类型没有名字,即为哑元参数,含有哑元参数的函数为哑元函数
作用:
向前兼容性
运算符重载中区分函数
类与对象
对象:具有属性和行为的个体
类(class):将多个具有相同性质属性和行为的对象,抽象出类
成员函数可以直接访问成员变量
实例化对象
实例化栈对象
实例化堆对象
类的修饰访问符
public:公共权限
可以在类外访问
private:私有权限
默认情况下所有类成员都是私有权限
如果想要访问私有权限,需要在公共权限设置函数
protected:保护权限
与私有权限一样,类外不可访问
什么是封装
定义一个类
设置类的私有成员有什么好处
设置可读可写的权限
类的默认函数
类的默认函数有哪些
构造函数:classname(){ }
默认生成构造函数
创建对象时初始化对象的数据
在实例化对象时会自动执行构造函数
可以在构造函数中初始化类成员
构造函数可以传参,重载
析构函数:~classname(){ }
默认生成析构函数
销毁对象时清除对象的数据,释放所占的空间
析构函数没有参数,不可以重载
一个类有且只有一个析构函数
拷贝构造函数
默认生成拷贝构造函数
是特殊的构造函数,是构造函数的重载
参数为类的常引用
(const 类名 & 参数名)
浅拷贝和深拷贝
浅拷贝:当有指针指向了一块空间时,复制的指针也指向这块空间
深拷贝:重新申请一块内存空间,将拷贝的指针指向的内容也复制到新的空间中
explicit关键字
可以屏蔽隐式调用(直接赋值)