benxintuzi

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 5 6 7 8 9

2015年5月25日

摘要: 当我们定义一个类时,如果没有声明任何函数,那么C++编译器会默认提供4个函数:默认构造函数、复制构造函数、赋值操作符函数、析构函数,并且这些函数默认都是public且inline的。因此,当你定义如下类: 1 class Empty 2 { 3 4 }; 5 6 // 等价于定义如下类:... 阅读全文
posted @ 2015-05-25 08:24 benxintuzi 阅读(288) 评论(0) 推荐(0)

2015年5月24日

摘要: C++明确指出:当派生类对象是由一个基类指针释放的,而基类中的析构函数不是虚函数,那么结果是未定义的。其实我们执行时其结果就是:只调用最上层基类的析构函数,派生类及其中间基类的析构函数得不到调用。 1 #include 2 3 using namespace std; 4 5 class Ti... 阅读全文
posted @ 2015-05-24 15:22 benxintuzi 阅读(300) 评论(0) 推荐(0)

摘要: 聚合:类型之间的一种关系,就是一种类型内含有另一种类型的变量。has-a: 1 class Address 2 { 3 4 }; 5 6 class PhoneNumber 7 { 8 9 };10 11 class Person12 {13 public:14 15 ... 阅读全文
posted @ 2015-05-24 13:36 benxintuzi 阅读(237) 评论(0) 推荐(0)

摘要: 在继承中,分为两类函数:virtual和non-virtual。而重新定义一个非虚函数是不好的(条款36),那么以下的讨论就是如何定义继承而来的虚函数。强调:虚函数是动态绑定的,而缺省参数值是静态绑定的。 1 #include 2 3 class Shape 4 { 5 public: 6 ... 阅读全文
posted @ 2015-05-24 12:02 benxintuzi 阅读(384) 评论(0) 推荐(0)

摘要: 1 #include 2 3 using namespace std; 4 5 class Base 6 { 7 public: 8 void mf(); 9 };10 void Base::mf()11 {12 cout mf(); // 调用Base:... 阅读全文
posted @ 2015-05-24 10:59 benxintuzi 阅读(178) 评论(0) 推荐(0)

摘要: 在设计类的继承时,一般有三种想法:1 只继承函数接口2 继承函数接口及其实现,并且允许修改该实现3 继承函数接口及其实现,但是不允许修改该实现考虑如下例子: 1 #include 2 3 class Shape 4 { 5 public: 6 virtual void draw() = ... 阅读全文
posted @ 2015-05-24 10:36 benxintuzi 阅读(322) 评论(0) 推荐(0)

摘要: • 此例中混合了纯虚函数、虚函数、非虚函数等,只是为了强调隐藏的是继承而来的名字,至于名字代表的是什么并不重要,即使enum、nested class、typedef也不例外。 1 #include 2 3 using namespace std; 4 5 class Base 6 { 7 p... 阅读全文
posted @ 2015-05-24 09:31 benxintuzi 阅读(175) 评论(0) 推荐(0)

2015年5月23日

摘要: 1.1 模式定义简单工厂模式:将创建不同对象的代码封装到具体产品类中;将创建这些具体产品类的公共代码封装到到抽象产品类中;定义一个工厂类,该类的静态方法可以根据不同参数创建不同的具体产品实例。模式要点:需要什么类型的产品,只需传入一个正确的参数,就可以获得一个对应的实例。1.2 模式结构图1.3 模... 阅读全文
posted @ 2015-05-23 19:23 benxintuzi 阅读(284) 评论(0) 推荐(0)

2015年5月21日

摘要: Scala中,几乎所有的语法结构都是有值的(包括表达式和语句块...)1 IF/ELSE结构val s = if(x > 0) 1 else -1等价于 if(x > 0) s = 1 else s = -1注:既然表达式是有值的,那么必然也是有类型的。如上述表达式的类型是:Int如果出现if分支和... 阅读全文
posted @ 2015-05-21 17:42 benxintuzi 阅读(280) 评论(0) 推荐(0)

摘要: 1 定义变量单个变量:varname = "benxintuzi"等价于 var name : String = "benxintuzi"(即定义变量时可以不显示指定类型,scala会根据数据自动识别)多个变量:var x, y = 100valage = 10说明:var定义变量,val定义常量2... 阅读全文
posted @ 2015-05-21 15:09 benxintuzi 阅读(857) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9