Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Хранение ссылки в классе

36K
15 мая 2010 года
Overmax2
63 / / 11.02.2010
Такой вопрос: (не где не могу найти ответ)
Как хранить ссылку на какой-то объект класса в другом объекте дркгого класса?

Например пишу вот так:
 
Код:
class MyClass1{
***********
}

class MyClass2{
  public:
    MyClass1 &Class;
}

при это выводится ошибка:
E2210 Reference member 'MyClass2::Class' is not initialized
:confused:
11
15 мая 2010 года
oxotnik333
2.9K / / 03.08.2007
следует вначале уяснить для себя что такое ссылка:
"Ссылка это альтернативное имя объекта" (с) Green
Объект еще не создан, соответственно ссылки быть не может.
36K
15 мая 2010 года
Overmax2
63 / / 11.02.2010
Просто такое дело:
У меня должен быть доступ из одного объекта в другой, причём объект к торому обращаются может меняться. Если я храню указатель, то изменения почему то не отображаются
P.S. изменение - я просто меняю String строку.
2.1K
15 мая 2010 года
Norgat
452 / / 12.08.2009
Код:
#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();
}


работает вроде... или я что то не так понял под сменой объекта?
36K
16 мая 2010 года
Overmax2
63 / / 11.02.2010
Norgat
Да твой код работает и ты всё понял правильно, пока тока не могу себе перенести в прогу его, что-то всё равно не сохраняется, но буду разбираться. Спасибо :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог