自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣更好更快的進行C++代碼編制

開發(fā) 后端
下面講述的內(nèi)容,都是如何讓C++代碼具有可復用性,但是我們不知道如何復用代碼,那么再有可復用性的代碼,也是沒有用的。

對***次接觸到C++代碼編制的用戶和學者來說,了解C++語言的概念是非常重要的,那么就先說一下什么是C++語言,所謂C++語言:是一種使用非常廣泛的計算機編程語言。

在我們的實際開發(fā)中,常常以拷貝C++代碼的方式來復用代碼。這包括某段代碼的拷貝,或者是幾個文件的拷貝。我倒是要提出一個我認為最基本的編碼原則:原則6 除非萬不得已,永遠也不要拷貝代碼。

如果我們把代碼在一個工程內(nèi)部進行拷貝,說明這個工程內(nèi)部有部分代碼必然是重復的。作為高效率的開發(fā)者,為何要編寫重復的代碼,而不直接復用他們呢?這說明代碼的設計有問題,或者是開發(fā)人員出于一時的方便起見,做出了敷衍的操作。

如果我們把C++代碼在一個工程拷貝到另外一個工程。說明我們實際上已經(jīng)寫出了可以在工程之間通用的代碼。這樣的代碼,是經(jīng)過至少一個工程的考驗的,我們?yōu)楹尾恢苯邮褂盟鼈儯硗饪截愐环菽??代碼的拷貝,至少有以下幾個缺點:

1. 如果這份代碼是沒有bug的。那么在拷貝過程中,可能出現(xiàn)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組件,必須依賴于一系列的實現(xiàn)非常復雜的模塊,比如HardwareCheck, RegisterCheck, OsCheck, ProcessCheck,沒有其中任何一個的實現(xiàn)就無法操作。實施上,這個check是沒有任何可復用性的。

此外,如果Log.c中還#include了def.h,那注定不能被輕易的“拷貝”。這處于工程開發(fā)階段的一個方便的考慮:假設我把所有的頭文件、宏定義、或者函數(shù)聲明都包含在一個叫做 def.h的頭文件中。那么,我編寫C++代碼的時候會非常方便,一般只要#include “def.h”就可以了,不用擔心任何缺少頭文件之類的問題。

【編輯推薦】

  1. C與C++中標準輸入實現(xiàn)方式上的一點區(qū)別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: 新浪科技
相關(guān)推薦

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++函數(shù)

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++調(diào)用

2010-01-25 14:43:00

C++構(gòu)造函數(shù)

2010-02-02 13:59:11

Python編寫

2010-02-03 09:27:21

編寫Python程序

2010-01-22 11:13:16

C++靜態(tài)

2010-01-11 16:59:50

C++源代碼

2010-01-12 15:03:33

C++代碼

2010-01-15 19:28:59

C++

2010-01-15 16:25:48

學習C++

2011-05-24 16:03:30

C++編譯速度

2010-01-25 10:25:19

C++變量
點贊
收藏

51CTO技術(shù)棧公眾號