在C++中,一般的架构设计都是基于多态,基于接口编程。一般的是基类提供接口,子类根据具体的业务逻辑来实现接口,以此来提供程序设计的过程中的可注入性,提高灵活性,但是事实可能不经如此。引入了多态,其实也就是引入了耦合,其强制规定了继承基类和接口的形式,这在整体继承体系中都是不可以更改的。C++0x中的bind函数和function模板类为我们提供了很好的设计解决方案,提供多态基于函数对象,其只和函数的返回值和参数有关。陈硕老师称其为Object-base编程,通过对象来完成功能注入。拳拳到肉(陈老师原话)。...
分类:
其他好文 时间:
2014-07-27 23:41:15
阅读次数:
383
重写(override)特点:1、要有继承关系2、方法原型要一致(修饰符、返回类型、方法名、参数列表一致)3、加上override关键字,重写父类的方法(该父类方法要有virtual、abstract进行修饰) /// /// 狗类(父类) /// class Dog { public str...
分类:
其他好文 时间:
2014-07-27 23:02:20
阅读次数:
244
继承中的构造方法:1、创建子类对象时,一定会先创建父类对象2、如果调用的子类构造方法没有使用base,就会自动调用父类无参的构造方法, 如果父类没有无参的构造方法就会报错3、如果调用的子类构造方法使用了base,就会根据base后面的参数调用父类对应的构造方法注意:如果类中有定义有参的构造方法,建议...
分类:
其他好文 时间:
2014-07-27 23:01:49
阅读次数:
190
闲着没事就把以前学习时的笔记拿出来整理了一下,个人感觉有点用,就想拿出来跟园友共享一下。有些基础性的内容比如基本概念、语法什么的就不发了。内容:1、构造方法(函数) 2、继承 3、访问修饰符 4、静态和非静态 5、隐藏基类方法 6、重写基类方法 7、抽象方法 8、接口 9、多态和接口 10、值...
分类:
Web程序 时间:
2014-07-27 22:39:09
阅读次数:
516
句柄类存在的意义是为了弥补将派生类对象赋给基类对象时发生的切片效应。例如下面的程序:
multimap basket;
Base base;
Derived derive;
basket.insert(base); //ok,add copy of base;
basket.insert(derive); //ok,but derive sliced down to its base part....
分类:
编程语言 时间:
2014-07-27 11:21:12
阅读次数:
255
多态也是C++中的一个重要的方面,多态和动态类型,虚函数本质上是指相同的事情。
1 虚函数
类中的成员函数原型前面加上virtual 表面这个函数是个虚函数。虚函数的目的是为了在继承它的派生类中重新定义这个函数,以便于通过基类的指针或引用在运行时对派生类的函数进行调用。
2 派生类和虚函数
派生类一般情况下要重定义所继承的虚函数,有几个注意事项。
虚函数的声明必须和基类中...
分类:
编程语言 时间:
2014-07-26 15:31:24
阅读次数:
265
Java SE知识点划分
1.程序设计基础:所有编程语言的基础(变量、数组、选择、循环等基本结构)
2.面向对象初识:理解类和对象,java中一切以类的设计为主
3.面向对象深入:三大特性(封装、继承、多态)其实接口相当的重要我更愿意把接口当作java的一大特性
4.常用类库:最典型的就是String类(学会如何使用这些已经封装好了的类,可以提高开发和工作效率)...
分类:
编程语言 时间:
2014-07-26 15:07:20
阅读次数:
302
类引入
到目前为止我们所写的自定义类型都是关键字struct,从现在起我们将采用class方式定义类,这种方式对于学习过其他高级语言包括脚本(Such as Python)的人来说再熟悉不过了.
但是在写之前我们还是需要比较一下用struct和class之间有什么区别.
首先对于struct,在C兼容性方面很重要,尽管C++是有别于C的另一门语言,但许多程序还是必须与C交互,C++有两个重要...
分类:
编程语言 时间:
2014-07-26 02:32:26
阅读次数:
216
封装,继承,多态是C++的三大基本概念,这里着重总结一下继承相关的东西
1 类派生列表
类派生列表指定派生类要继承的基类,派生列表中有一个或者多个基类如:
class B : public A1,protected A2,private A3
但是单继承时最常见的,多继承不多见
2 派生类的定义
派生类继承时,会包含父类的所有成员,即便私有成员不能被访问。父类中的虚函数...
分类:
编程语言 时间:
2014-07-26 01:56:26
阅读次数:
296
代码#include class Animal{public: void eat() { coutbreathe();}void main(){ Fish fh; Animal *pAn; pAn=&fh; fn(pAn); }说明我们先来看看我们这个程序的运行结果:animal breathe这里...
分类:
编程语言 时间:
2014-07-26 01:37:56
阅读次数:
231