玩命加载中 . . .

学习之旅
14.3-算术和关系运算符 14.3-算术和关系运算符
14.3 算术和关系运算符 算术和关系运算符一般定义为非成员函数 算术运算符会计算两个运算对象并得到一个新值,新值通常是一个局部变量,然后返回局部变量的副本 Sales_data operator+(const Sales_data&
2021-10-26
14.2-输入和输出运算符 14.2-输入和输出运算符
14.2 输入和输出运算符类需要自定义IO操作的>>输入和<<输出运算符 14.2.1 重载输出运算符 第一个参数是非常量的ostream对象的引用 第二个参数是常量的类类型的引用 ostream& o
2021-10-26
14.1-基本概念 14.1-基本概念
14.1 基本概念 当一个重载的运算符是成员函数时,this绑定到左侧运算对象,成员运算符函数的参数数量比运算对象的数量少一个 不能被重载的运算符:::、.*、.、?: data1 + data2; // 普通的表达式 operator
2021-10-26
13.6-对象移动 13.6-对象移动
13.6 对象移动有时候对象拷贝之后就立即销毁了,如果只是移动而不是拷贝对象会大幅度提升性能,因为移动不用重新分配内存和拷贝数据 标准库容器、string和shared_ptr类既支持移动也支持拷贝,IO类和unique_ptr类可以移动
2021-10-26
13.3-交换操作 13.3-交换操作
13.3 交换操作在排序算法中经常用到两个元素的交换,如果设计的类也要实现排序,就需要用到swap,如果类没有自定义swap函数,就会调用标准库定义的swap 标准库的swapPerson tmp = p1; p1 = p2; p2 = t
2021-10-26
13.2-拷贝控制与资源管理 13.2-拷贝控制与资源管理
13.2 拷贝控制与资源管理13.2.1 行为像值的类行为像值的类拷贝时要先拷贝源对象的资源,再释放当前对象的资源,再指向新的资源 class Person { private: string *ptr; int
2021-10-26
13.1-拷贝、赋值与销毁 13.1-拷贝、赋值与销毁
13.1 拷贝、赋值与销毁13.1.1 copy constructor 拷贝构造函数 第一个参数是引用类型Foo(const Foo&); 直接初始化和拷贝初始化 Person p1("kavin", 23); //
2021-10-26
12.1-动态内存与智能指针 12.1-动态内存与智能指针
shared_ptr允许多个指针指向同一个对象,unique_ptr则独占所指向的对象,weak_ptr是一种弱引用,指向shared_ptr所管理的对象 12.1.1 shared_ptr类需要指定想要创建的对象的类型 shared_pt
2021-10-26
10.3-定制操作 10.3-定制操作
向算法传递函数谓词(predicate)是一个可调用的表达式,其返回结果是一个能用作条件的值。标准库算法使用的谓词分为一元谓词(unary predicate,接受一个参数)和二元谓词(binary predicate,接受两个参数)。接受
2021-10-26
7.6-类的静态成员 7.6-类的静态成员
7.6 类的静态成员如果需要让一个成员在所有对象中都是一样的,可以将其声明为静态变量,如银行利率,是所有对象共享的 class Account { public: void calculate() { amoun
2021-10-26
7.5-构造函数再探 7.5-构造函数再探
7.5 构造函数再探7.5.1 构造函数初始值列表如果没有在构造函数的初始值列表中显式地初始化成员,则该成员将在构造函数体之前执行默认初始化,然后再在构造函数体内赋值 // 使用初始化列表 Sales_data(const string&a
2021-10-26
7.4-类的作用域 7.4-类的作用域
类的作用域在类的作用域之外,普通的数据和函数成员只能由对象、引用或者指针使用成员访问运算符来访问 Screen::pos ht = 3, wd = 3; // 使用Screen定义的pos类型 Screen scr(ht, wd, 'X')
2021-10-26
5 / 8