11 2023 档案
摘要:#include<iostream> #include<array> template<typename T,size_t S> class Array { private: T m_data[S]; public: constexpr int Size()const { return S; } T
阅读全文
摘要:三法则:如果需要构造函数一定要有复制构造函数和赋值构造函数 五法则:为了支持移动语义有增加了移动构造函数和移动赋值运算符 需要区分移动构造函数和移动赋值运算符;完全取决于所赋值的对象开始的值有没有先构造。 使用移动语义去重写复制构造函数会让它变成窃取资源是原来的对象资源便空
阅读全文
摘要:为了避免复制构造函数复制类而占用内存,使用移动语义去潜复制。 move(类名 other),重写复制构造函数,指的是类中初始化成员变量时可以使用move,其他时候使用的是右值引用 或者用右值引用传参重写复制构造函数:类名&& 使用std::move去代替右值引用的参数赋值
阅读全文
摘要:左值是存在地址存储的值,右值是一个临时值 左值引用只能赋值为左值,除非加const 右值引用是加“&&”
阅读全文