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

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

Восстановить пароль Регистрация
 
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 131
22.04.2014, 19:19     Как проверить по ссылке, создан ли объект? #1
Добрый вечер.

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++
Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать? C++
C++ Массив и классы (как передаётся объект: по значению или по ссылке?)
C++ c/c++ fopen() как открыть файл по ссылке?
Что вернуть по ссылке, если объект функцией поиска не найден? 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
Сообщений: 131
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     Как проверить по ссылке, создан ли объект?
Ответ Создать тему
Опции темы

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