Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
еще и под опекой модераторов
Кто бы говорил про опеку... но персонаж с двумя экканутами...
еще и под опекой модераторов
Дя я вроде свой пост сам удалил.
Это был случай, когда в функции создается объект через new. А изначально был разговор о том, что нужно передать указатель на существующий объект. И вот, его можно так передавать:
void f(CObj * obj){}
А если в функцию надо передать указатель, чтобы в функции создать объект, вот так работает:
Вот собственно и все, что вы хотели знать про ООП, но боялись спросить)))У меня этот код вышибает терминал. В лучшем случае вызывает критическую ошибку в отладке (для анимации счелкните рисунок):
Странно, что такую конструкцию пропускает компилятор.
Дмитрий первый пример привел с ошибкой, и что тут такого?
Дим, да он компилируется без ошибок, но при запуске скрипта лезет ошибка.
Владимир его подкорректировал, и добавил указатель, код заработал правильно.
Что ещё надо? Теперь выяснять отношения кто крутой перец? ))))
Ребят будьте уважительны друг к другу, и не переходите на личности и оскорбления с высокомерием.
Начальный пример от Дмитрия
Корректировка Владимира
Моя корректировка с принтом результата метода, для проверки
Данный пример стал рабочим, что ещё надо?
Прекращайте выяснять отношения кто круче или нет, у всех бывают опечатки и ошибки.
Входе данных споров, по моему выявили ошибку компилятора.
Почему компилятор пропускает компилирование без ошибок начального примера Дмитрия?
У меня этот код вышибает терминал. В лучшем случае вызывает критическую ошибку в отладке:
Странно, что такую конструкцию пропускает компилятор.
Для компилятора здесь все валидно.
Создан указатель на объект в сегменте данных программы, при компиляции он инициирован 0х0.
В сегменте кода созданы необходимые команды процессору.
При исполнении на стек подняты команды по адресу функции z(...).
А там move rdx [0x0]
А обращение к нулевому адресу памяти запрещено. Разыменование нулевого указателя называется.
Для компилятора здесь все валидно.
Для какого компилятора?
У меня этот код вышибает терминал. В лучшем случае вызывает критическую ошибку в отладке (для анимации счелкните рисунок):
Странно, что такую конструкцию пропускает компилятор.
А у меня компилируется, работает правильно, но по завершению работы выводит сообщение об утечке памяти (delete не срабатывает).
Вы его сейчас плохому научите, тут бы хорошему разобраться )))
Не зря Вы с кодами fxsaber сидели. Как по мне, это шедевр.
Извиняюсь за дезинформацию, ранее писал, что нельзя в дочернем классе вызвать метод Create().
Сейчас перепроверил, можно. Но доступ к private-члену m_button был недоступен. Т.е. нельзя было проверить, например, состояние кнопки: нажата/отжата.
С подсказкой Игоря теперь можно.