2 掌握變數定義的位置與時機

2021-06-26 09:50:12 字數 1042 閱讀 2066

變數的定義建議離使用位置越近越好,盡量避免變數作用域的膨脹。

如下**:

string  getsubstr(const string& str,size_t ipos)

strsubstr=str.substr(ipos);

return strsubstr;

}在上述**中,物件strsubstr沒有完全被使用。如果丟擲異常,得付出strsubstr構造和析構的代價。

string  getsubstr(const string& str,size_t ipos)

string strsubstr;

strsubstr=str.substr(ipos);

return strsubstr;

}改了後,也不是最優的,

strsubstr雖然定義,但未對它進行初始化,也就是說在賦值之前strsubstr還需要進行default構造初始化。

string  getsubstr(const string& str,size_t ipos)

string strsubstr(str.substr(ipos));

return strsubstr;

} 通過這種方式,能夠有效的減少命名汙染問題,同時提高**的可讀性和執行效率。

在c++中,避免命名汙染問題:

1、命名空間

2、延遲變數定義的位置

注意:如果變數定義在迴圈體內試驗,那麼把它定義於迴圈體內還是迴圈體外?

方法aclassa obj;

for (int i=0;iobj=與i相關的某個值;

}方法b

for (int i=0;iclassa obj=與i相關的某個值;

}方法a和方法b兩種模式,操作代價可總結如下:

方法a:1個classa構造+ n個賦值操作+ 1個classa析構

方法b:n個classa構造+ n個賦值操作+ n個classa析構

當n很大時,賦值操作代價較高,則b較好;

如果構造和析構代價較高,則b較好。

VC 學習(2) 掌握C

c 的標準輸入輸出流 c 中提供了一套輸入輸出流類的物件,它們是 cin cout 和cerr 對應c 語言中的三個檔案指標 stdin stdout stderr 分別指向終端輸入 終端輸出和標準出錯輸出 也從終端輸出 cin與 一起完成輸入操作,cout cerr 與 一起完成輸出與標準錯誤輸出...

2020122702 掌握需求過程 2

編寫需求規格說明書是指得到要構建的產品的完整描述的任務。在需求分析的過程中,要把我們的每一步記錄下來,這並不是簡簡單單的寫報告而已,而是發現問題,理清自己思路的乙個很好的方式。需求產品說明書的完整是乙個開發軟體的必備條件,它必須包含清晰 完整 可測試的指令,說明必須構建什麼,清楚自己的目標。所以編寫...

Lesson2 掌握C 基本語法

1.c 主要特點 封裝性 encapsulation 把資料與運算元據的函式組織在一起,使程式結構更加緊湊,提高類內部資料的安全性。繼承性 inheritance 增加了軟體的可擴充性及 重用性 多型性 polymorphism 使設計人員在設計程式時可以對問題進行更好的抽象,有利於 的維護和可重用...