Referenzelementvariablen als Klassenelemente
An meinem Arbeitsplatz sehe ich diesen Stil ausgiebig verwendet: -
#include <iostream>
using namespace std;
class A
{
public:
A(int& thing) : m_thing(thing) {}
void printit() { cout << m_thing << endl; }
protected:
const int& m_thing; //usually would be more complex object
};
int main(int argc, char* argv[])
{
int myint = 5;
A myA(myint);
myA.printit();
return 0;
}
Gibt es einen Namen, der diese Redewendung beschreibt? Ich gehe davon aus, dass es den möglicherweise großen Aufwand beim Kopieren eines großen komplexen Objekts verhindern soll?
Ist das im Allgemeinen eine gute Praxis? Gibt es irgendwelche Fallstricke bei diesem Ansatz?