มีประโยชน์ใด ๆ ในการวางตัวแปรสมาชิกคลาสในรายการตัวเริ่มต้นที่ไม่จำเป็นต้องอยู่ในรายการตัวเริ่มต้นหรือไม่? ตัวอย่าง:
class Foo
{
public:
Foo() {}
};
class Bar
{
public:
Bar() : _foo() {}
private:
Foo _foo;
};
คอมไพเลอร์ทำอะไรเป็นพิเศษในกรณีนี้หรือไม่?
_foo
ได้รับการเริ่มต้นแล้ว (โดยใช้ตัวสร้างเริ่มต้นของ foo) จากการประกาศFoo _foo;
หากคุณต้องการกำหนดค่าเริ่มต้นใหม่_foo
ให้ใช้Bar() : _foo(Foo()) {}
อย่างไรก็ตาม นี่คงจะไร้จุดหมาย - person andre   schedule 05.11.2012_foo
ได้รับการเตรียมใช้งานในรายการเครื่องมือเริ่มต้น นั่นคือที่เดียวเท่านั้นที่สมาชิกจะเริ่มต้นได้ในชั้นเรียนBar() : _foo(Foo()) {}
ไม่ เริ่มต้นใหม่_foo
-- เริ่มต้น - person John Dibling   schedule 05.11.2012