玩命加载中 . . .

学习之旅
16.1-定义模板 16.1-定义模板
16.1.1 函数模板定义一个通用的函数模板,用于两个对象的比较 template<typename T> // 模板参数列表 int compare(const T& v1, const T& v2)
2022-01-20
15.7-容器与继承 15.7-容器与继承
15.7 容器与继承如果声明一个存放Quote类型的数组,放Quote对象没问题,如果放进去一个Bulk_quote对象,看似没问题,实际上只是放入了Bulk_quote对象Quote部分 vector<Quote> basket;
2022-01-20
15.6-构造函数与拷贝控制 15.6-构造函数与拷贝控制
15.6 构造函数与拷贝控制在基类中必须将析构函数定义为虚函数,这样动态绑定时会调用动态类型自己的析构函数版本 合成拷贝控制与继承继承关系 Bulk_quote -> Disc_quote -> Quote 合成的Bulk_quote默认
2022-01-20
15.5-继承中的类作用域 15.5-继承中的类作用域
15.5 继承中的类作用域如果一个名字在派生类的作用域无法解析,则编译器将继续在外层的基类作用域中寻找该名字的定义 继承关系 Bulk_quote -> Disc_quote -> Quote Bulk_quote bulk; cout &
2022-01-20
15.4-访问控制与继承 15.4-访问控制与继承
访问控制与继承class Base { protected: int prot_mem; }; class Sneaky : public Base { friend void clobber
2022-01-20
15.3-虚函数 15.3-虚函数
虚函数动态绑定只有通过指针或引用调用虚函数时才会发生 一旦某个函数被声明为虚函数,则在所有派生类中它都是虚函数 一个派生类的函数如果覆盖了某个继承而来的虚函数,则它的形参类型必须与它覆盖的基类函数完全一致 派生类中虚函数的返回类型也必须
2022-01-20
15.2-定义基类和派生类 15.2-定义基类和派生类
15.2 定义基类和派生类class Quote { public: Quote() = default; Quote(const string& book, double sales_price) :
2022-01-20
15.1-面向对象概述 15.1-面向对象概述
通过继承(inheritance),联系在一起的类构成一种层次关系 基类(base class):定义共同拥有的成员 派生类(derived class):定义特有的成员 虚函数(virtual function):基类希望派生类各自定义
2022-01-20
14.9-重载类型转换运算符 14.9-重载类型转换运算符
14.9 重载类型转换运算符类型转换运算符是特殊的成员函数,它负责将一个类类型的值转换成其他类型一般形式为:operator type() const; 定义一个比较简单的类,令其表示0到255之间的一个整数class SmallInt &
2022-01-20
14.8-函数调用运算符 14.8-函数调用运算符
14.8 函数调用运算符 函数调用运算符必须是成员函数 struct absInt { int operator()(int val) const { return val < 0 ? -
2022-01-20
14.7-成员访问运算符 14.7-成员访问运算符
14.7 成员访问运算符添加解引用运算符*和箭头运算符-> class StrBlobPtr { public: string& operator*() const { auto p
2021-10-26
14.4/14.5/14.6-赋值/下标/递增和递减运算符 14.4/14.5/14.6-赋值/下标/递增和递减运算符
14.4 赋值运算符赋值运算符必须定义为成员函数,返回左侧运算对象的引用 复合赋值运算符Sales_data& Sales_data::operator+=(const Sales_data& rhs) {
2021-10-26
4 / 8