溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣進(jìn)行C++代碼編制

發(fā)布時(shí)間:2021-10-27 18:17:29 來(lái)源:億速云 閱讀:125 作者:柒染 欄目:編程語(yǔ)言

本篇文章為大家展示了怎樣進(jìn)行C++代碼編制,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

對(duì)***次接觸到C++代碼編制的用戶和學(xué)者來(lái)說(shuō),了解C++語(yǔ)言的概念是非常重要的,那么就先說(shuō)一下什么是C++語(yǔ)言,所謂C++語(yǔ)言:是一種使用非常廣泛的計(jì)算機(jī)編程語(yǔ)言。

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

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

如果我們把C++代碼在一個(gè)工程拷貝到另外一個(gè)工程。說(shuō)明我們實(shí)際上已經(jīng)寫出了可以在工程之間通用的代碼。這樣的代碼,是經(jīng)過(guò)至少一個(gè)工程的考驗(yàn)的,我們?yōu)楹尾恢苯邮褂盟鼈?,而要另外拷貝一份呢?代碼的拷貝,至少有以下幾個(gè)缺點(diǎn):

1. 如果這份代碼是沒(méi)有bug的。那么在拷貝過(guò)程中,可能出現(xiàn)bug。

2. 如果這份代碼是有bug的,那么在拷貝過(guò)程中,bug也被復(fù)制了。bug會(huì)傳染到其他的工程組件,甚至其他的工程項(xiàng)目中。

所謂的代碼復(fù)用,我打算給出一個(gè)定義如下:

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不但難看而且長(zhǎng)。更重要的是,這非常的沒(méi)有可擴(kuò)展性。這個(gè)check組件,必須依賴于一系列的實(shí)現(xiàn)非常復(fù)雜的模塊,比如HardwareCheck, RegisterCheck, OsCheck, ProcessCheck,沒(méi)有其中任何一個(gè)的實(shí)現(xiàn)就無(wú)法操作。實(shí)施上,這個(gè)check是沒(méi)有任何可復(fù)用性的。

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

上述內(nèi)容就是怎樣進(jìn)行C++代碼編制,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI