工作一年有余,最近负责项目组内代码重构。简单说下我的体会。很多时候,我们都在说面向对象编程,可面向对象到底怎么理解,估计每个人的想法都不一样。很多人会告诉你一些很理论的东西。比如“封装”“继承”“多态”“单一职责”“依赖倒置”等等一系列高大上的名词。更有甚者会搬出设计模式之类更加高大上的东东。好像不...
分类:
其他好文 时间:
2014-08-27 23:25:28
阅读次数:
367
class文件中的access flag记录了一个类的相关信息,比如public abstract final等等。其中有一个值ACC_SUPER。现理解如下:
ACC_SUPER是用来表示如何调用父类的方法。在jdk1.1之前,jvm使用一种invokenonvirtual的指令,调用父类方法。这个方法就是现在的invokespecial 前身。既然连名字都改过了,他们的实现差距可以认为已经比较大了。invokenonvirtual是不会进行虚函数查找的,也就是总是静态绑定。...
分类:
编程语言 时间:
2014-08-27 18:53:28
阅读次数:
326
一个C++继承、虚函数和多态性的实例代码,用于说明父类、子类和虚函数的用法。...
分类:
编程语言 时间:
2014-08-27 18:41:58
阅读次数:
208
所谓重载指的是同一个类中有两个或多个名字相同但是参数不同的方法。重载,必然发生在一个类中,函数名相同,参数类型或者顺序不同构成重载,与返回类型无关。override:过载也称重写是指子类对父类中虚函数或抽象函数的“覆盖”(这也就是有些书将过载翻译为覆盖的原因),但是这种“覆盖”和用new关键字来覆盖...
分类:
其他好文 时间:
2014-08-27 16:05:37
阅读次数:
164
转载:http://blog.chinaunix.net/uid-25544300-id-3236826.html部分修改,感谢博主!在 某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有 任何纯虚函数。怎...
分类:
其他好文 时间:
2014-08-27 15:57:47
阅读次数:
218
1.静态联编,是程序的匹配,连接在编译阶段实现,也称为早期匹配。重载函数使用静态联编。
2.动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编。switch语句和if语句是动态联编的例子。
#include
void go(int num)
{
}
void go(char *str)
{
}
//class
//::在一个类中
class A
{
public:
voi...
分类:
其他好文 时间:
2014-08-27 14:48:28
阅读次数:
212
??
1.override,final的使用,两者都是针对虚函数,也就是说要有virtual关键字
#include
//C++中的final和override主要是针对虚函数
//加了final表示拒绝重写,这是为了使某些情况下,拒绝接口的重写
//override,声明重写父类的方法,前提是要有virtual关键字修饰函数。
//当父类没有接口...
分类:
其他好文 时间:
2014-08-27 14:46:28
阅读次数:
436
本笔试题考查范围包括面向对象基础、HTML、CSS、JS、EF、jQuery、SQL、编码思想、算法等范围。第1题:接口和抽象类有何区别?第2题:静态方法和实例方法有何区别?第3题:什么是多态?如何实现?第4题:什么是泛型约束?第5题:Func和Action这2个类有何区别?第6题:假设有实体类Pr...
分类:
Web程序 时间:
2014-08-27 14:32:27
阅读次数:
281
【1】什么是简单工厂模式?核心思想:用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。理解:根据条件生成不同的实例。利用多态的特性,调用同名方法,不同的实例将得到不同的结果。【2】代码示例如下:代码如下: 1 #include 2 #include ...
分类:
其他好文 时间:
2014-08-26 22:37:36
阅读次数:
307