您好,登錄后才能下訂單哦!
本篇內容介紹了“C++名稱該怎么寫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
ES.7: 通用和局部的名稱應該簡短,特殊和非局部的名稱應該較長。
Reason(原因)
可讀性。避免無關的非局部名稱之間的沖突。
Example(示例)
遵循慣例的,簡短的局部變量可以增加可讀性。
template<typename T> // good
void print(ostream& os, const vector<T>& v)
{
for (gsl::index i = 0; i < v.size(); ++i)
os << v[i] << '\n';
}
索引習慣上命名為i;在這個通用函數中,關于vector的含義沒有任何參考信息,因此v也是一個好名字。
template<typename Element_type> // bad: verbose, hard to read
void print(ostream& target_stream, const vector<Element_type>& current_vector)
{
for (gsl::index current_element_index = 0;
current_element_index < current_vector.size();
++current_element_index
)
target_stream << current_vector[current_element_index] << '\n';
}
是的,這段代碼有點夸張,但是我們確實看過更差的。
Example(示例)
特殊且很短的非局部名稱會擾亂代碼:
void use1(const string& s)
{
// ...
tt(s); // bad: what is tt()?
// ...
}
稍好一點的做法是,為非局部實體提供可讀的名稱:
void use1(const string& s)
{
// ...
trim_tail(s); // better
// ...
}
存在這樣的可能性:讀者能夠理解trim_tail的含義并且可以在查閱代碼之后能夠記住它。
Example, bad(反面示例)
長函數的參數名屬于事實上的非局部變量,應該具有明確的含義:
void complicated_algorithm(vector<Record>& vr, const vector<int>& vi, map<string, int>& out)
// read from events in vr (marking used Records) for the indices in
// vi placing (name, index) pairs into out
{
// ... 500 lines of code using vr, vi, and out ...
}
我們推薦保持函數簡短,但是該規則不會適用于所有情況,名稱也應該反映這種變化。
Enforcement(實施建議)
檢查局部和非局部變量的長度。注意同時考慮函數的長度。
“C++名稱該怎么寫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。