模版在C++中具有非常重要的地位,STL就是大量运用模版写出来的。
模版的优点我就不一一列举了。这里我只说一下模版的原理。
当编译器遇到模版方法定义的时候,编译器进行语法检查,但是并不会编译模版。编译器无法编译模版定义,因为编译器不知道要使用的类型是什么,编译器不知道x和y的类型的情况下无法为x=y这样的语句生成代码。
当编译器遇到一个实例化的模版的时候,例如vector vi(这里我只是拿...
分类:
编程语言 时间:
2014-08-20 10:32:46
阅读次数:
300
Php面向对象 – 单例模式
保证类只有一个实例
1. 如何可以解决一个类可以被无限地实例化?
New,就能实例化一次,怎么去限制,用户不能无限次地new?
将构造方法私有化。所有外部的new都操作失败
class MySQLDB
{
private function __construct()
{
}
...
分类:
Web程序 时间:
2014-08-20 00:02:35
阅读次数:
335
如果你发现你有很多重复的代码,你可能会考虑用模板方法消除容易出错的重复代码。这里有一个例子:下面的两个类,完成了几乎相同的功能: 实例化并初始化一个Reader来读取CSV文件;读取每一行并解析;把每一行的字符填充到Product或Customer对象;将每一个对象添加到Set里;返回Set。正如你看到的,只有有注释的地方是不一样的。其他所有步骤都是相同的。ProductCsvReader.jav...
分类:
编程语言 时间:
2014-08-19 22:32:05
阅读次数:
356
如果你发现你有很多重复的代码,你可能会考虑用模板方法消除容易出错的重复代码。这里有一个例子:下面的两个类,完成了几乎相同的功能: 实例化并初始化一个Reader来读取CSV文件; 读取每一行并解析; 把每一行的字符填充到Product或Customer对象; 将每一个对象添加到...
分类:
编程语言 时间:
2014-08-19 22:23:55
阅读次数:
335
在WinForm中DataGridView可谓是应用比较多的数据显示控件了,DataGridView中可以应用各种控件,关于这样的文章网上已有很多。都是实例化一个控件然后通过DataGridView.Controls.Add()方法绑定控件。然后通过特定的事伯执行数据绑定与操作。 这几天在做项目的时...
抽象类表示一种抽象的概念, 只是希望以它为基类的派生类有共同的函数成员和数据成员。抽象类使用abstract修饰符,对抽象类的使用有以下几点规定:? 抽象类只能作为其它类的基类,它不能直接被实例化。? 抽象类允许包含抽象成员,虽然这不是必须的。抽象成员用abstract修饰符修饰。? 抽象类不能同时...
分类:
其他好文 时间:
2014-08-19 18:56:25
阅读次数:
210
Php面向对象 – Final类
该类,只能被实例化对象不能用于被继承。
设计时,该类不能再扩展了,就应该通过语法final限制,其他用户扩展该类。
定义:
在class前,增加final关键字。
例子:
class Goods
{
public $goods_name;
public $shop_price;
p...
分类:
Web程序 时间:
2014-08-19 16:41:14
阅读次数:
203
Php面向对象 -- 抽象类
抽象类abstract:
有一种类,只能被继承,不能实例化对象。原因就是这个类的定义不完整。
因为php支持定义一种,只有方法的声明部分,而没有方法的实现部分的不完整方法。
如果某个类,包含了这种不完整的方法,就不是不完整类,也就不能实例化对象。
不完整的类,称之抽象类
所包含的不完整的方法,称之抽象方法。
定义:
包含抽象方法的类,...
分类:
Web程序 时间:
2014-08-19 16:35:56
阅读次数:
196
从一篇blog得知使用脚本可以异步调用Web服务,觉得很新鲜,因为自己很少用到Web服务,所以决定写一写看看什么效果。 首先在UI项目(我使用的是MVC4.0)里创建一个Web服务。 添加Web服务后,默认有一个HelloWorld方法。调用该方法有两种形式,一是服务端通过实例化对象调用...
分类:
Web程序 时间:
2014-08-19 16:04:56
阅读次数:
298
无法创建抽象类大家都知道抽象类是无法实例化的,即:不能new。在以下这些情况会遇到这种问题:1.基类是抽象类:2.基类是接口:由于mongodb的特性,在保存抽象类或接口的子类时,会自动映射一个字段"_t":即:子类名称;但是当读取的时候,必须创建子类的,但是由于不知道是那个子类,于是会创建基类的实...
分类:
数据库 时间:
2014-08-19 10:52:54
阅读次数:
440