您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎樣進行C++代碼編制,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
對***次接觸到C++代碼編制的用戶和學者來說,了解C++語言的概念是非常重要的,那么就先說一下什么是C++語言,所謂C++語言:是一種使用非常廣泛的計算機編程語言。
在我們的實際開發中,常常以拷貝C++代碼的方式來復用代碼。這包括某段代碼的拷貝,或者是幾個文件的拷貝。我倒是要提出一個我認為最基本的編碼原則:原則6 除非萬不得已,永遠也不要拷貝代碼。
如果我們把代碼在一個工程內部進行拷貝,說明這個工程內部有部分代碼必然是重復的。作為高效率的開發者,為何要編寫重復的代碼,而不直接復用他們呢?這說明代碼的設計有問題,或者是開發人員出于一時的方便起見,做出了敷衍的操作。
如果我們把C++代碼在一個工程拷貝到另外一個工程。說明我們實際上已經寫出了可以在工程之間通用的代碼。這樣的代碼,是經過至少一個工程的考驗的,我們為何不直接使用它們,而要另外拷貝一份呢?代碼的拷貝,至少有以下幾個缺點:
1. 如果這份代碼是沒有bug的。那么在拷貝過程中,可能出現bug。
2. 如果這份代碼是有bug的,那么在拷貝過程中,bug也被復制了。bug會傳染到其他的工程組件,甚至其他的工程項目中。
所謂的代碼復用,我打算給出一個定義如下:
bool check( const vector< condition * > &conditions) { unsigned int i; bool result = true; for(i=0;i<conditions.size();++i) { if(conditions[i]->check_type == “Hardware”) resulte &&= HardwareCheck(condition->param1,condition->param2); else if(conditions[i]->check_type == “Registry”) resulte &&= RegistryCheck(condition->param1,condition->param2); else if(conditions[i]->check_type == “OS”) resulte &&= OSCheck(condition->param1,condition->param2); 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”就可以了,不用擔心任何缺少頭文件之類的問題。
上述內容就是怎樣進行C++代碼編制,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。