變數的定義建議離使用位置越近越好,盡量避免變數作用域的膨脹。
如下**:
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 使設計人員在設計程式時可以對問題進行更好的抽象,有利於 的維護和可重用...