C++核心準(zhǔn)則?Con.1:默認(rèn)情況下使對(duì)象不可修改

秋英
Con.1: By default, make objects immutable
Con.1:默認(rèn)情況下使對(duì)象不可修改
Reason(原因)
Immutable objects are easier to reason about, so make objects non-const?only when there is a need to change their value. Prevents accidental or hard-to-notice change of value.
不可修改的對(duì)象更容易理解,因此只有在存在變更需求時(shí)才將對(duì)象定義為非常量。防止偶然或者不易察覺(jué)的情況下修改對(duì)象的值。
Example(示例)
for (const int i : c) cout << i << '\n'; // just reading: const
for (int i : c) cout << i << '\n'; // BAD: just reading
Exception(例外)
Function arguments are rarely mutated, but also rarely declared const. To avoid confusion and lots of false positives, don't enforce this rule for function arguments.
函數(shù)參數(shù)很少修改,但還是很少定義為常量類型。為了避免混淆和大量的誤檢出,不要對(duì)函數(shù)參數(shù)適用本規(guī)則。
void f(const char* const p); // pedantic
void g(const int i); // pedantic
Note that function parameter is a local variable so changes to it are local.
注意函數(shù)參數(shù)是局部變量,因此對(duì)它的修改也是局部的。
Enforcement(實(shí)施建議)
Flag non-const?variables that are not modified (except for parameters to avoid many false positives)
標(biāo)記沒(méi)有發(fā)生變更的非常量變量(為了避免誤檢出需要將函數(shù)參數(shù)除外)
原文鏈接
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#con1-by-default-make-objects-immutable
新書(shū)介紹
以下是本人3月份出版的新書(shū),拜托多多關(guān)注!

本書(shū)利用Python 的標(biāo)準(zhǔn)GUI 工具包tkinter,通過(guò)可執(zhí)行的示例對(duì)23 個(gè)設(shè)計(jì)模式逐個(gè)進(jìn)行說(shuō)明。這樣一方面可以使讀者了解真實(shí)的軟件開(kāi)發(fā)工作中每個(gè)設(shè)計(jì)模式的運(yùn)用場(chǎng)景和想要解決的問(wèn)題;另一方面通過(guò)對(duì)這些問(wèn)題的解決過(guò)程進(jìn)行說(shuō)明,讓讀者明白在編寫(xiě)代碼時(shí)如何判斷使用設(shè)計(jì)模式的利弊,并合理運(yùn)用設(shè)計(jì)模式。
對(duì)設(shè)計(jì)模式感興趣而且希望隨學(xué)隨用的讀者通過(guò)本書(shū)可以快速跨越從理解到運(yùn)用的門(mén)檻;希望學(xué)習(xí)Python GUI 編程的讀者可以將本書(shū)中的示例作為設(shè)計(jì)和開(kāi)發(fā)的參考;使用Python 語(yǔ)言進(jìn)行圖像分析、數(shù)據(jù)處理工作的讀者可以直接以本書(shū)中的示例為基礎(chǔ),迅速構(gòu)建自己的系統(tǒng)架構(gòu)。
覺(jué)得本文有幫助?請(qǐng)分享給更多人。
關(guān)注微信公眾號(hào)【面向?qū)ο笏伎肌枯p松學(xué)習(xí)每一天!
面向?qū)ο箝_(kāi)發(fā),面向?qū)ο笏伎迹?/span>
