怎样更好更快的进行C++代码编制

开发 后端
下面讲述的内容,都是如何让C++代码具有可复用性,但是我们不知道如何复用代码,那么再有可复用性的代码,也是没有用的。

对***次接触到C++代码编制的用户和学者来说,了解C++语言的概念是非常重要的,那么就先说一下什么是C++语言,所谓C++语言:是一种使用非常广泛的计算机编程语言。

在我们的实际开发中,常常以拷贝C++代码的方式来复用代码。这包括某段代码的拷贝,或者是几个文件的拷贝。我倒是要提出一个我认为最基本的编码原则:原则6 除非万不得已,永远也不要拷贝代码。

如果我们把代码在一个工程内部进行拷贝,说明这个工程内部有部分代码必然是重复的。作为高效率的开发者,为何要编写重复的代码,而不直接复用他们呢?这说明代码的设计有问题,或者是开发人员出于一时的方便起见,做出了敷衍的操作。

如果我们把C++代码在一个工程拷贝到另外一个工程。说明我们实际上已经写出了可以在工程之间通用的代码。这样的代码,是经过至少一个工程的考验的,我们为何不直接使用它们,而要另外拷贝一份呢?代码的拷贝,至少有以下几个缺点:

1. 如果这份代码是没有bug的。那么在拷贝过程中,可能出现bug。

2. 如果这份代码是有bug的,那么在拷贝过程中,bug也被复制了。bug会传染到其他的工程组件,甚至其他的工程项目中。

所谓的代码复用,我打算给出一个定义如下:

  1. bool check( const vector< condition * > &conditions)
  2.  {
  3.  unsigned int i; bool result = true; for(i=0;i<conditions.size();++i) 
  4. { if(conditions[i]->check_type == “Hardware”) resulte &&= HardwareCheck(condition->param1,condition->param2); 
  5. else if(conditions[i]->check_type == “Registry”) resulte &&= RegistryCheck(condition->param1,condition->param2); 
  6. else if(conditions[i]->check_type == “OS”) resulte &&= OSCheck(condition->param1,condition->param2); 
  7. else if(conditions[i]->check_type == “Process”) resulte &&= ProcessCheck(condition->param1,condition->param2); … … } }  

以上的if … else if不但难看而且长。更重要的是,这非常的没有可扩展性。这个check组件,必须依赖于一系列的实现非常复杂的模块,比如HardwareCheck, RegisterCheck, OsCheck, ProcessCheck,没有其中任何一个的实现就无法操作。实施上,这个check是没有任何可复用性的。

此外,如果Log.c中还#include了def.h,那注定不能被轻易的“拷贝”。这处于工程开发阶段的一个方便的考虑:假设我把所有的头文件、宏定义、或者函数声明都包含在一个叫做 def.h的头文件中。那么,我编写C++代码的时候会非常方便,一般只要#include “def.h”就可以了,不用担心任何缺少头文件之类的问题。

【编辑推荐】

  1. C与C++中标准输入实现方式上的一点区别
  2. C++编译器如何对Const常量进行分配存储空间
  3. C++类库设计的基本构思与方法
  4. 玩转C++语言的几种方法
  5. 如何更好的进行C++代码编制
责任编辑:chenqingxiang 来源: 新浪科技
相关推荐

2010-01-22 18:06:24

C++代码

2010-01-12 10:50:59

学习C++

2009-12-10 16:50:58

Visual Stud

2010-01-22 13:20:27

C++代码

2010-01-11 15:36:08

C++代码

2010-01-20 17:32:16

C++函数

2010-01-26 10:01:17

学习C++

2010-01-15 18:06:20

C++引用

2010-01-13 16:44:03

C++

2010-01-20 14:35:55

C++调用

2010-02-02 13:59:11

Python编写

2010-01-25 14:43:00

C++构造函数

2010-02-03 09:27:21

编写Python程序

2010-01-22 11:13:16

C++静态

2010-01-12 15:03:33

C++代码

2010-01-11 16:59:50

C++源代码

2011-05-24 16:03:30

C++编译速度

2010-01-15 19:28:59

C++

2010-01-15 16:25:48

学习C++

2017-09-04 17:50:12

点赞
收藏

51CTO技术栈公众号