in den Konstruktor übergeben werden kann (Eigentum bleibt extern zur Klasse) oder) oder < /li>
In dem Konstruktor der Klasse (Eigentum ist mit dieser Klasse) < /li>
< /ul>
Grundsätzlich möchte ich so etwas wie etwas wie Dies (welches kompiliert nicht, weil versucht wird, nicht konstante Lvalue-Referenzen auf Temporary zu binden): < /p>
Code: Select all
class A;
class B{
public:
B() : m_a { A() } {} //
const
Code: Select all
const< /code> Methoden des Objekts.
std::unique_ptr
Code: Select all
class A;
class B{
public:
B() : m_a { m_aObj } {}
B(A& a) : m_a { a } {}
useA() { m_a.do_something(); }
private:
A& m_a;
A m_aObj;
};
< /code>
class A;
class B{
public:
B() : m_a { std::make_shared() } {}
B(std::shared_ptr a) : m_a {a} {}
useA() { m_a->do_something(); }
private:
std::shared_ptr m_a;
};