b(a->i)
在这里是什么意思,它与内存有什么关系?
class myConstructor {
public:
myConstructor(A* a) : b(a->i) {
// some operations
}
private:
B* b;
}
答案 0 :(得分:0)
答案 1 :(得分:0)
它在调用构造函数主体之前初始化成员b
。这一点非常重要,特别是当您有一些const
成员或一些references
时。例如
class ConstMemberedClass
{
public:
ConstMemberedClass() : c_member(64) // initialization of const member
{
doStuffWithConstMember(c_member);
}
private:
const int c_member;
}
class ReferenceMemberedClass
{
public:
ReferenceMemberedClass(MyClass& ref) : r_object(ref) // initialization of reference
{
doStuffWithReference(r_object);
}
private:
MyClass& r_object;
}