The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Передача объектов по ссылке"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Передача объектов по ссылке"  +/
Сообщение от handler2006 email(ok) on 04-Янв-12, 09:20 
Здравствуйте!
Имеется класс:

class Ref
{
private:
std::map<int, int> Map;
public:
Ref::Ref(Ref &ref){Map=ref.Map;}
public:
int getValue(int Key) {return Map[Key];}
};

Кроме этого, имеются два класса, содержащщие ссылку на объект класса Ref:


class A
{
private:
Ref &ref;
};


class B
{
private:
Ref &ref;
};

Инициализация этих полей в классах A и B отличается:

Для класса А:


int main()
{
Ref ref;
A a(ref);
}

Для класса B:


int main()
{
void A::createB()
{
B b = new B(this->ref;)
}
}

Так вот, с классом А все в порядке, он пользуется методами класса Ref без проблем, а вот с классом В наоборот, инициализируется нормально, а вот при попытке обратьться к методу getKey() возникает исключение при доступе к мапе.
В чем косяк?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Передача объектов по ссылке"  +/
Сообщение от pavlinux (ok) on 07-Янв-12, 05:10 
> В чем косяк?

Меня прикалывают ООПрограмисты, вместо решения задачи, трахаются с тем как организовать
это решение - Метод класса методов через метод в класс метода классов... Прям как наши политики. :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Передача объектов по ссылке"  +/
Сообщение от handler2006 email(ok) on 07-Янв-12, 08:37 
Извините, я допустил грубейшую ошибку в коде, в следствие которой возникало исключение при обращении к неинициализированному объекту.
В который раз создаю тему по непроверенному коду-  простите мне мое невежество. Гепотетически можно предположить, что я когда-нибудь все таки стану настоящим программистом и не буду задавать глупых вопросов хотябы потому, что их больше не останется
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Передача объектов по ссылке"  +/
Сообщение от pavlinux (ok) on 07-Янв-12, 16:39 
> Извините, я допустил грубейшую ошибку в коде, в следствие которой возникало исключение
> при обращении к неинициализированному объекту.
> В который раз создаю тему по непроверенному коду-  простите мне мое
> невежество. Гепотетически можно предположить, что я когда-нибудь все таки стану настоящим
> программистом и не буду задавать глупых вопросов хотябы потому, что их
> больше не останется

Какой народ культурный, и это после нового года :)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Передача объектов по ссылке"  +/
Сообщение от ACCA (ok) on 11-Янв-12, 11:23 
> Меня прикалывают ООПрограмисты, вместо решения задачи, трахаются с тем как организовать
> это решение - Метод класса методов через метод в класс метода классов...

Видишь ли, они пытаются решить класс задач, чтобы потом не работать, а курить бамбук.

Когда у тебя 100500 сущностей, очень хочется выполнить балансировку дерева и получить 5-6 оптимальных уровней сложности, а не трахаться с каждым исключением.

Только вот ведь незадача - чтобы дерево оставалось оптимальным, в среднем после добавления 2 новых сущностей или удаления 5 нужно перебалансировать, то есть переписывать всё нах.

На сегодняшний день решения этой проблемы не существует. Буч и ООП братва не рассматривают случай эволюции оптимально спроектированых систем.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Передача объектов по ссылке"  +/
Сообщение от fork (??) on 05-Фев-12, 02:28 
А зачем решения проблем, которые несущественны? Эволюция оптимально спроектированных систем - немного странно звучит, так как эволюция сама по себе творит не оптимальные системы, а только достаточные для выживания относительно других существующих.


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру