Consider you have one class entity which needs a reference to another class data and you would store multiple of this classes entity in a vector in class data, you might end up with some code like this:
<code>struct data;
struct entity {
entity(data& _parent) : parent(_parent) {}
data& parent;
// some other stuff depending on parents member
};
struct data {
data(size_t n) : vec(n, *this) {}
std::vector<entity> vec;
// some other stuff
};
</code>
<code>struct data;
struct entity {
entity(data& _parent) : parent(_parent) {}
data& parent;
// some other stuff depending on parents member
};
struct data {
data(size_t n) : vec(n, *this) {}
std::vector<entity> vec;
// some other stuff
};
</code>
struct data;
struct entity {
entity(data& _parent) : parent(_parent) {}
data& parent;
// some other stuff depending on parents member
};
struct data {
data(size_t n) : vec(n, *this) {}
std::vector<entity> vec;
// some other stuff
};
In order to reduce overhead it would be favorable to make parent (the reference to data) a static member, since all objects of type entity stored in vec have the same reference. Is this possible?