C++编程思想学习-概论

原创 2012年03月22日 11:32:53

1接口

操接口就是规定了我们可以向对象发送什么请求以及请求的格式。向对象发送消息即为提出请求。

2隐藏实现

       将客户程序员和类库底层实现分离。易于库的维护和开发,同时简化了客户程序员的负担,客户程序员不用关注具体库是如何实现的,而只要知道类库可以提供什么功能,如何使用即可。

       通过关键字实现类中的边界,保护类中的成员。关键字:public  private protected

4重用实现

       最简单的重用直接使用类的对象.同时,也可可以将一个类的对象作为另一个类的成员,即成员对象,即为组合。

       组合具有很大灵活性,而成员对象一般下都是私有的,从而防止新类的客户程序员受到干扰。同时可以在程序运行时动态改变这些成员对象,从而去改变程序的行为。

       继承也可以实现代码的复用。但是,由于继承不如组合灵活。所以,能用组合的地方尽量不用继承。

5继承:重用接口

       选取已存在的类,克隆并修改。如:基类描述系统中的一些对象的核心思想,而基类的派生类则进行行为、特性的具体实现和精化。C++使解空间的描述语与问题域的描述语一致从而减少中间模型。有利于问题的解决。派生类通过添加新类型的消息以及overriding基类的消息从而实现对基类的修改。新增的消息种类不能被基类的对象所使用。

6多态性

       通过多态性,可以使所调用的具体消息的确定推迟至程序运行时。增强了系统的可扩展性,可维护性。    C++中通过关键字virtual来告诉编译器这是一个虚函数。编译为晚绑定。

7创建和销毁对象

       C++使用堆式的动态存储分配策略。使系统的设计更加灵活。不必在程序设计设计时就要确定对象的多少、对象的生命周期,数据类型等。关键字为newdelete

9分析和设计

       首先,要明白系统要解决什么问题。其次,开发过程时,不要迷路。进行系统设计时,一定是先将系统分为许多子集,而非,一开始就编写代码。无论在初期做了多少分析,总有一些问题是在设计,更多的是在编程或者运行时才发现,所以,迅速的进行设计与分析并对提出的系统进行测试是相当重要的。而且,由于一些系统本身在前期是没有充足的信息的,称为不定型系统。这种系统的设计开发过程本身就是一个反复的过程。

       1)、用一句概括性的话描述系统。(2)、确定系统要做什么,画出用例图。(3)、建立对象,可以用类职责协同卡的形式。对象的设计是一个不断学习的过程,不要强迫自己一次性知道每一件事(4)、创建核心,创建出系统的核心结构。如果可以,可以快速生成原型及早的检测所构建的系统是否是实际需要的系统。

       先写测试,好处:(1)、强制类的接口有清晰的定义。(2)、利用编译器和运行时系统的协作,来构建系统的安全网。结对编程,好处:(1)、相互激励,相互监督,相互帮助、同时加快程序的开发。

10C转变到C++

       首先,训练和做例子,接着找一个实验性的项目找到基本感觉。不要试图用一些混乱的例子进行训练,同时,也不要期望做一个真实有效的项目来找感觉。项目训练时可以找一些成功的例子来学习经验,尽量试着用已有的类库,以达到知道、熟悉C++已有类库来发挥C++的高效性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++编程思想学习笔记----第11章 引用和拷贝构造函数

11.1 C++中的指针 c和c++指针的最重要区别在于c++是一种类型要求更强的语言。在c中,void* 类型的指针可以随意地指向其他类型的指针,而c++中必须显示地使用类型转换通知编译器和读者,这...

C++编程思想学习笔记---第14章 继承和组合

继承是面向对象程序设计的基石 14.1 组合语法下面一段代码把类型X的一个对象作为公共对象嵌入到一个新类内部,实现了组合的语法。//: C14: useful.h //A class to reuse...

C++编程思想学习笔记——名字控制

概要:名字控制主要用于对名字的产生和名字的可见性进行控制

C++编程思想学习笔记---第五章 隐藏实现

C++编程思想的学习笔记

C++编程思想学习笔记---第13章 动态创建对象

一个空中交通指挥系统需要处理多少架飞机?一个网络中将会有多少个节点?为了解决这个普通的问题,我们需要在运行时可以创建和销毁对象是最基本的要求。当然C早就提供了动态内存分配 函数malloc()和fre...

《C++编程思想》学习笔记

主要是自己看这本书的时候一些容易忘记的细节,可能你会说太细节了,但是每次回顾这些的时候,自己总能够同时想起其他的一些知识点。 本人是个新手,希望能够得到各路大神的指点!谢谢了! 本文是按章分的,以...

C++编程思想学习——动态对象创建

1、  对象的创建 a)         创建一个对象时会发生两件事:为对象分配内存、调用构造函数来初始化那块内存。 b)       ...

C++编程思想学习——内联函数

1、预处理器的缺陷        预处理器的宏虽然降低了函数调用的额外开销,使用宏也表面上好像是使用函数一样。但是,使用宏时可能在预处理器的展开后,表达式的优先级,以及表达式展开后的多次求值可能使...

C++编程思想学习笔记---第15章 多态性和虚函数

多态性(polymorphis)提供了接口与具体实现之间的另一层隔离,从而将”what”与”how”分离开来。多态性改善了代码的组织性和可读性,同时也使创建的程序具有可扩展性。 15.1 C++程序员...

C++编程思想学习笔记---第十章 名字控制

第十章 名字控制 10.1 来自C语言中的静态元素 在C和C++的定义中,static都有两种基本含义: 1) 在固定的地址上进行存储分配,对象在静态区创建,而不是每次调用函数时在堆栈上产生。  ==...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)