URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9346
[ Назад ]

Исходное сообщение
"Передача объектов по ссылке"

Отправлено handler2006 , 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() возникает исключение при доступе к мапе.
В чем косяк?

Содержание

Сообщения в этом обсуждении
"Передача объектов по ссылке"
Отправлено pavlinux , 07-Янв-12 05:10 
> В чем косяк?

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


"Передача объектов по ссылке"
Отправлено handler2006 , 07-Янв-12 08:37 
Извините, я допустил грубейшую ошибку в коде, в следствие которой возникало исключение при обращении к неинициализированному объекту.
В который раз создаю тему по непроверенному коду-  простите мне мое невежество. Гепотетически можно предположить, что я когда-нибудь все таки стану настоящим программистом и не буду задавать глупых вопросов хотябы потому, что их больше не останется

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

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


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

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

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

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

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


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