Нет ... но вы можете приблизиться к этому. Например, вы можете создать класс, в котором каждый экземпляр является просто клоном одного и того же реального объекта ... например:
struct TheRealObject
{
std::string s;
TheRealObject() { ... }
void foo(int x) { ... }
double bar(char y) { ... }
static TheRealObject& getInstance()
{
static TheRealObject trb;
return trb;
}
};
struct MyObject
{
std::string& s;
MyObject() : s(TheRealObject::getInstance().s) {}
void foo(int x) { TheRealObject::getInstance().foo(x); }
double bar(char y) { return TheRealObject::getInstance().bar(y); }
};
Обратите внимание, что каждый экземпляр MyObject
по-прежнему будет отдельным объектом (например, со своим собственным адресом), но он будет просто батутом к единственному существующему экземпляру TheRealObject
как для доступа к методам, так и для доступа к элементам данных.
Почему ты хочешь сделать что-то странное? Может быть, вы просто ищете синглтон (например, TheRealObject
в приведенном выше)?