class MyClass1{
***********
}
class MyClass2{
public:
MyClass1 &Class;
}
Хранение ссылки в классе
Как хранить ссылку на какой-то объект класса в другом объекте дркгого класса?
Например пишу вот так:
Код:
при это выводится ошибка:
E2210 Reference member 'MyClass2::Class' is not initialized
:confused:
"Ссылка это альтернативное имя объекта" (с) Green
Объект еще не создан, соответственно ссылки быть не может.
У меня должен быть доступ из одного объекта в другой, причём объект к торому обращаются может меняться. Если я храню указатель, то изменения почему то не отображаются
P.S. изменение - я просто меняю String строку.
Код:
#include <iostream>
#include <string>
using namespace std;
class ref_cls
{
string str;
public:
ref_cls(string STR)
{str = STR;}
void setS(string STR)
{str = STR;}
void print() const
{cout << str << endl;}
};
class pointer
{
ref_cls* obj;
public:
pointer(ref_cls* OBJ)
{obj = OBJ;}
void setP(ref_cls* OBJ)
{obj = OBJ;}
void Print()
{obj->print();}
};
void main()
{
string str1 = "STR1", str2 = "STR2";
ref_cls OBJ1(str1), OBJ2(str2);
pointer P(&OBJ1);
P.Print();
P.setP(&OBJ2);
P.Print();
OBJ2.setS("STR3");
P.Print();
cin.get();
}
#include <string>
using namespace std;
class ref_cls
{
string str;
public:
ref_cls(string STR)
{str = STR;}
void setS(string STR)
{str = STR;}
void print() const
{cout << str << endl;}
};
class pointer
{
ref_cls* obj;
public:
pointer(ref_cls* OBJ)
{obj = OBJ;}
void setP(ref_cls* OBJ)
{obj = OBJ;}
void Print()
{obj->print();}
};
void main()
{
string str1 = "STR1", str2 = "STR2";
ref_cls OBJ1(str1), OBJ2(str2);
pointer P(&OBJ1);
P.Print();
P.setP(&OBJ2);
P.Print();
OBJ2.setS("STR3");
P.Print();
cin.get();
}
работает вроде... или я что то не так понял под сменой объекта?
Да твой код работает и ты всё понял правильно, пока тока не могу себе перенести в прогу его, что-то всё равно не сохраняется, но буду разбираться. Спасибо :)