C++核心準則C.47:按照成員變量聲明的次序定義和初始化數(shù)據(jù)成員

C.47:按照成員變量聲明的次序定義和初始化數(shù)據(jù)成員
To minimize confusion and errors. That is the order in which the initialization happens (independent of the order of member initializers).
最大限度降低混淆和錯誤。這(聲明的次序,譯者注)是初始化執(zhí)行的順序(和成員初始化器的順序無關)
class Foo {
? ?int m1;
? ?int m2;
public:
? ?Foo(int x) :m2{x}, m1{++x} { } ? // BAD: misleading initializer order
? ?// ...
};
Foo x(1); // surprise: x.m1 == x.m2 == 2(Simple) A member initializer list should mention the members in the same order they are declared.
(簡單)成員初始化列表應該按照成員被聲明的次序處理它們。
原文鏈接https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c47-define-and-initialize-member-variables-in-the-order-of-member-declaration
覺得本文有幫助?請分享給更多人。
關注【面向對象思考】輕松學習每一天!
面向對象開發(fā),面向對象思考!
評論
圖片
表情
