[C++] Доступ к объекту
Ты чего тут гонишь? Передаешь переменную Xuy1 по значению и хочешь чтобы она была измененной вне тела функции? Тогда надо передавать как xuy& Xuy1.
у тебя даже откомпилиться не должно. Ты звезду не туда засунул
Ну это модельный пример, как я понял
Спасибо.
Конечно модельный. Просто для проверки одной теории.
Не, у меня все компилируется
пардон, меня склинило. Как-то непривычно возвращать int*
В дебагере хотел за адресами последить, вот и поизвращался
pizda(Xyu1,3);
Xyu1 - его надо передовать либо по ссылке либо указателем, создается копия объекта, и последующее обращение не отвечает за то что память будет общая, это имхо весьма логично. хотя мб я сейчас пьяный , но после ошибки, которую выкидывает VC .NET именно это.Код комплится но глючит.
А ты тред прочел?
Я правда так и не понял на хую такие извращения
Да прочел. Запусти под дот нет и посмотри что это есть.
...создается копия объекта...
Так это чего ж, я создаю нехилого размера объект, а он у меня еще и размножаться будет?!
Б#я, не знал! Ботать нуна...
Я правда так и не понял на хую такие извращения
Ответ:
Если программер извращенец, то он программер. Обратное не верно.
Я помню один раз так хорошо наебалcя писал МАШГШРАФ юзал std::vector и в одном месте приравнял и долго вкуривал почему на целках 20 кадров, а на пнях 40 когда передал по указателю все стало заебись.
pizda(Xyu1,3);
Я не под виндой сижу и мой gdb так не ругался (он вообще не ругался !)
Это компилится, но это не правильно. up ^
И в релизе это катит, а дебаг ругается
Честно говоря все это очень странно. Я не понимаю что там undefined. Бред какой-то. Вообще это абсолютно нормальная программа. Просто она не работает как задумано. И почему при отладке она у тебя это показывает? Идиотизм.
Читай Хелпу (c) Pablito
Читай внимательно тред (с) Я
Поэтому их не читаю, а читаю конкретную проблему
Потому что сейчас, при данной ошибке поле Xuy1.xuy_i неинициализируется, но при этом из него берется значение.
А почему оно не инициализируется? Должен же по любому выполнитсья конструктор по умолчанию, который и проинициализирует все поля?
в C++ конструктор по умолчанию ничего сам не инициализирует
в C++ конструктор по умолчанию ничего сам не инициализирует
В С++ конструктор по умолчанию вообще-то вызывает конструкторы полей, и они чего там им нужно инициализируют. Просто конструктор int-а (если так можно выразится) действительно этого int-а не инициализирует...
Оставить комментарий
pavlova
Точнее к полю объекта:Почему-то в main у меня нет доступа к xyu_i. Все компилируется без ошибок (пользуюсь компилятором g++-3.2.2). Спросил уже у многих сведущих в си++ и все они согласны с правомерностью кода, говорят, что доступ должен быть (правда они никогда не пользовались g++). Так что я понять не могу в чем фигня. Может просто у g++ так не принято и нужно его специальными ключами уговаривать?