Stel ik heb dit:
Hoe kan ik dan zo makkelijk mogelijk in B::B() a initialiseren met de coordinaten van een f call ?
Ik zou natuurlijk een A* (auto)pointer ipv. een A kunnen gebruiken zodat ik in B::B()'s body een nieuw A object kan aanmaken en initialiseren met behulp van een local Point object waar ik f op los heb gelaten, maar deze methode bevalt me niet aangezien a dan een heap object is terwijl dat object precies dezelfde lifetime moet hebben als het B object..
Is deze pointer manier toch de beste methode, of is er iets eleganters te bedenken ?
code:
1
2
3
4
5
6
7
8
9
10
| struct Point { int x, y; };
void f (Point & p); // vult p's x en y in
struct A { A (int x, int y); };
struct B
{
A a;
B ();
}; |
Hoe kan ik dan zo makkelijk mogelijk in B::B() a initialiseren met de coordinaten van een f call ?
Ik zou natuurlijk een A* (auto)pointer ipv. een A kunnen gebruiken zodat ik in B::B()'s body een nieuw A object kan aanmaken en initialiseren met behulp van een local Point object waar ik f op los heb gelaten, maar deze methode bevalt me niet aangezien a dan een heap object is terwijl dat object precies dezelfde lifetime moet hebben als het B object..
Is deze pointer manier toch de beste methode, of is er iets eleganters te bedenken ?