摘要:
例子1:负载监视器,如何在一个程序中实现对这些不同条件的适应呢? int main() { WindowDisplay display; Monitor monitor(&display); while(running()) { monitor.getLoad(); monitor.getTotal
阅读全文
posted @ 2017-04-13 23:03
Worty
阅读(410)
推荐(0)
摘要:
//例子:旋转方阵填充,要求矩阵大小任意,尺寸在运行时输入 设计思路:从上到下 int main() { cout > size; Matrix obj(size);//生成N*N矩阵 obj.fill(); cout 0 && _data[(row-1) * _size + col] == 0) row--; ...
阅读全文
posted @ 2017-04-11 23:57
Worty
阅读(1080)
推荐(0)
摘要:
一切都在变化,因此程序要适应变化; 变化分层 封装 接口与隐藏: 接口:类暴露出来的部分,是类所提供的功能; 隐藏实现的细节; UML类图 接口在哪儿? 设计思路:从上到下设计 实现类的接口 细化
阅读全文
posted @ 2017-04-11 23:28
Worty
阅读(901)
推荐(0)
摘要:
模板参数的具体化/特殊化 有时,有些类型不适用,则需要对模板进行特殊化处理,这称为“模板特化” 对函数模板,如果有多个模板参数,则特化时必须提供所有参数的特例类型,不能部分特化; 如: char *sum(char *,char *); 在函数名后用<>括号括起具体类型 template<> cha
阅读全文
posted @ 2017-04-11 22:45
Worty
阅读(475)
推荐(0)
摘要:
成员函数的模板: 普通类的成员函数,也可以定义为函数模板,如: class normal_class { public: int value; template<typename T> void set(T const &v) { value = int(v);//在类内定义 } template<
阅读全文
posted @ 2017-04-11 22:06
Worty
阅读(281)
推荐(0)
摘要:
类模板 在定义类时也可以将一些类型抽象出来,用模板参数来替换,从而使类更具有通用性。这种类被称为模板类,例如: template <typename T> class A { T data; public: //类模板成员函数的定义方式一:在类模板中定义 void print() {cout <<
阅读全文
posted @ 2017-04-10 23:52
Worty
阅读(257)
推荐(0)
摘要:
函数模板 有些算法与类型无关,所以可以将函数的参数类型也定义为一种特殊的“参数”,这样就得到“函数模板” 定义函数模板的方法:template<typename T> 返回类型 函数名称(函数参数); 如:template<typename T> T sum(T a, T b) {return a
阅读全文
posted @ 2017-04-10 23:32
Worty
阅读(205)
推荐(0)
摘要:
强制类型转换(显示转换) dynamic_cast<Dst_Type>(Src_var) Src_var必须是引用或者指针类型,Dst_Type类中含有虚函数,否则会有编译错误; 若目标类与源类之间没有继承关系,则转化失败,返回空指针(注:失败并不是运行崩溃) static_cast<Dst_Typ
阅读全文
posted @ 2017-04-01 00:16
Worty
阅读(314)
推荐(0)
摘要:
禁止自动类型转换 explicit 禁止自动类型转换--delete 使用=delete修饰的成员函数,不允许被调用
阅读全文
posted @ 2017-03-30 00:12
Worty
阅读(2201)
推荐(0)
摘要:
方法1:在源类中定义目标类型转换运算符 方法2:在目标类中定义源类对象作参数的构造函数 拷贝:同样类的对象拷贝给同样类的新对象; 注意:两种自定义类型转换的方法不能同时使用;
阅读全文
posted @ 2017-03-30 00:05
Worty
阅读(287)
推荐(0)