Search code examples
c++ctor-initializermember-pointers

Is it standard C++ to assign a member pointer to the address of another member in the constructor initializer?


Does this conform to the standard?

class Foo {
    Bar m_bar;
    Bar * m_woo;
public:
    Foo() : m_bar(42, 123), m_woo(&m_bar) { }
};

Solution

  • It is correct. What is not correct is dereferencing that pointer before that particular subobject has been fully initialized.