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