- 博客(14)
- 收藏
- 关注
原创 const
加了const的方法将this限定为const,这样将不能修改本对象的值。加了const的方法只能调用static函数和const方法。常对象只能调用static函数和const方法。
2024-10-30 17:50:06
84
原创 初始化列表
初始化顺序不是跟着初始化列表走的,而是跟着类中成员变量的声明顺序进行的初始化。若成员是常量或引用或无默认构造函数的自定义类型,必需使用初始化列表。子类构造函数可以用初始化列表来选择基类构造函数。成员是类,初始化列表比赋值性能好。初始化列表只能在构造函数中使用。
2024-10-30 17:48:50
117
原创 右值和移动语义
左值对象被转移资源后,不会立即析构,只有左值离开自己作用域时才会析构。std::forward<T>(参数)用于完美转发。若无移动构造/赋值,则寻找拷贝构造/赋值。std::move()将左值转义为右值。模版中&&是万能引用。
2024-10-30 17:47:58
82
原创 智能指针unique
⑤reset()释放对象,如reset();reset(ptr)。③release()释放对裸指针的控制权,将其置为空并返回裸指针。①将一个uptr赋值给另一个时,仅源uptr是临时右值时可以。1.禁用普通的拷贝构造函数和赋值函数,不支持隐式类型转换。④std::move()可以转移对原始指针的控制权。⑦exit()退出仅全局的uptr可自动释放.②用nullptr给uptr赋值将释放对象。⑥swap()用于交换两个uptr控制权。3.不要用它管理非new分配的内存。
2024-10-30 17:46:07
224
原创 cast类型转换和typeid
typeid(数据类型或变量或表达式)。2.指针间转换(不借助void*)。专门用于丢弃const关键字。1.只适用于包含虚函数的类。1.至少一个是指针(引用)。2.可用于引用,返回异常。1.用于内置数据类型转换。2.void*和指针转换。3.指针与非指针互转。
2024-10-30 17:33:20
123
原创 模版 c++
普通函数>(具体化>函数模版)(<>),但是匹配更好的更优先。成员模版函数不能是虚的也不能是析构函数。用类模版创建对象必须指明具体的数据类型。必须明确数据类型,可显式可隐式。自动类型推导不会有隐式类型转换。2.实例化时必须用常量表达式。函数模版的定义放在头文件中。类模版可以有非通用类型参数。具体程度越高优先度越高。可指定缺省的数据类型。仅类模版有部分具体化。3.不能改参数的值。
2024-10-30 17:32:07
85
原创 static
静态成员变量要在全局初始化(类中:static int a;只在函数声明中写static,virtual,默认参数。私有静态成员在类外无法访问。
2024-10-30 17:29:58
90
原创 引用 c++
若引用的数据对象类型不匹配,且引用为const时,将创建临时变量。引用可以作为函数重载条件,const和返回值不能。返回引用的函数是被引用变量的别名。引用是指针常量的伪装。
2024-10-30 17:12:10
296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人