Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 134
#1

Как проверить по ссылке, создан ли объект? - C++

22.04.2014, 19:19. Просмотров 526. Ответов 3
Метки нет (Все метки)

Добрый вечер.

C++
1
2
3
4
5
class A1{}
A1 *p1;
A1 *p2;
.......
p1 = new A1();
p2 не создан

Передаю ссылку на значения p1 и p2 в другой класс.
пытаюсь проверить создан класс или нет, такими способами
1. if (p1 != NULL)
2. if(dynamic_cast<A1 *>(p1))

1. Вариант работает если объект создан, если не создан программа "вылетает"
2. Работает но не надежно. Через N циклов тоже вылетает.

Подскажите пожалуйста, как по адресу проверить, что объект был создан?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 19:19     Как проверить по ссылке, создан ли объект?
Посмотрите здесь:

Обращение к методам объекта по ссылке на объект C++
Как проверить, правильно ли создан copy-конструктор? C++
Как вернуть результат функции по ссылке? C++
C++ Массив и классы (как передаётся объект: по значению или по ссылке?)
Что вернуть по ссылке, если объект функцией поиска не найден? C++
Присвоить ссылку на функцию, по ссылке на объект:) C++
Как происходит возврат значения по ссылке? C++
C++ Проверить объект в std::bind на живучесть
C++ Объект не передается по ссылке
Что можно возвратить из функции если нужный объект не создан C++
Как сделать, чтобы появлялось сообщение "Массив не создан", если не задано положительное число ранга матрицы C++
Как проверить является ли объект базовым классом или наследником C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
22.04.2014, 19:22     Как проверить по ссылке, создан ли объект? #2
Никогда не оставляйте объекты не инициализированными. Иначе будет вылетать, разве что писать обработчики ошибок под это.
Но лучше просто используйте при объявлении:

C++
1
2
A1 *p1 = 0;
A1 *p2 = 0;
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 134
22.04.2014, 19:28  [ТС]     Как проверить по ссылке, создан ли объект? #3
Спасибо.
А каким способом проверять?
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
22.04.2014, 21:10     Как проверить по ссылке, создан ли объект? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну проверяете на 0. Единственное нельзя пробовать получить доступ к данным в этом случае. Указатели могут указывать либо на объект либо на 0.
Yandex
Объявления
22.04.2014, 21:10     Как проверить по ссылке, создан ли объект?
Ответ Создать тему
Опции темы

Текущее время: 13:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru