Здравствуйте!
Имеется класс:
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() возникает исключение при доступе к мапе.
В чем косяк?
> В чем косяк?Меня прикалывают ООПрограмисты, вместо решения задачи, трахаются с тем как организовать
это решение - Метод класса методов через метод в класс метода классов... Прям как наши политики. :)
Извините, я допустил грубейшую ошибку в коде, в следствие которой возникало исключение при обращении к неинициализированному объекту.
В который раз создаю тему по непроверенному коду- простите мне мое невежество. Гепотетически можно предположить, что я когда-нибудь все таки стану настоящим программистом и не буду задавать глупых вопросов хотябы потому, что их больше не останется
> Извините, я допустил грубейшую ошибку в коде, в следствие которой возникало исключение
> при обращении к неинициализированному объекту.
> В который раз создаю тему по непроверенному коду- простите мне мое
> невежество. Гепотетически можно предположить, что я когда-нибудь все таки стану настоящим
> программистом и не буду задавать глупых вопросов хотябы потому, что их
> больше не останетсяКакой народ культурный, и это после нового года :)
> Меня прикалывают ООПрограмисты, вместо решения задачи, трахаются с тем как организовать
> это решение - Метод класса методов через метод в класс метода классов...Видишь ли, они пытаются решить класс задач, чтобы потом не работать, а курить бамбук.
Когда у тебя 100500 сущностей, очень хочется выполнить балансировку дерева и получить 5-6 оптимальных уровней сложности, а не трахаться с каждым исключением.
Только вот ведь незадача - чтобы дерево оставалось оптимальным, в среднем после добавления 2 новых сущностей или удаления 5 нужно перебалансировать, то есть переписывать всё нах.
На сегодняшний день решения этой проблемы не существует. Буч и ООП братва не рассматривают случай эволюции оптимально спроектированых систем.
А зачем решения проблем, которые несущественны? Эволюция оптимально спроектированных систем - немного странно звучит, так как эволюция сама по себе творит не оптимальные системы, а только достаточные для выживания относительно других существующих.