Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
sandanen
0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 19
#1

Как проверить на какой класс ссылается указатель? - C++

07.04.2015, 23:42. Просмотров 346. Ответов 2
Метки нет (Все метки)

То есть допустим есть базовый класс
C++
1
class A
и производные
C++
1
class B:public A; class C:public A;
также есть ссылка
C++
1
2
3
4
A *s;
        s=new B;
       //либо
        s=new C;
затем надо определить на что ссылается s??? на B или на С;
/*******************************************************************************/


еще возможен такой вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
if(1){
B *s;
s=new B;
}
if(2){
C *s;
s=new C;
}
//...затем
A *v;
v=s;
затем надо определить на какой класс ссылается v??? на B или на С;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2015, 23:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как проверить на какой класс ссылается указатель? (C++):

Скопировать объект, на который ссылается указатель на абстрактный класс - C++
Доброго времени суток. У меня такое задание: написать программу символьного дифференцирования, т.е. пользователь пишет функцию f(x), а...

Как можно узнать размер выделенной динамической памяти, на которую ссылается указатель a? - C++
Скажем я в какой-то момент выделяю память под массив: int *a = new int ; затем память может изменяться как-то и конечный размер мне не...

Удаление памяти, на которую ссылается указатель - C++
Всем привет. Такой вопрос, что станет с указателем на объект, если этот объект удалить через delete? У меня есть пользовательский класс...

Получить адрес памяти, на который ссылается указатель - C++
Изучаю указатели, появился такой вопрос: int *b = new int(5); Как получить адрес памяти, на который ссылается указатель b? То есть...

Указатель в списке ссылается на себя, а не на следующий элемент - C++
Уважаемые, форумчане! Помогите разобраться в вопросе. Я хочу реализовать стек(добавление элемента) на основе односвязного списка. ...

Двусвязный список с целыми числами - Указатель, который ссылается на предыдущий блок - C++
Всем здравствуйте, сразу прошу прощения за тему, которых и так навалом в нете. Я перечитал уйму информации по созданию и не могу понять с...

2
nmcf
6203 / 5514 / 1931
Регистрация: 14.04.2014
Сообщений: 23,152
07.04.2015, 23:44 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
dynamic_cast попробуй.
1
senyaarseniy
30 / 30 / 6
Регистрация: 30.11.2013
Сообщений: 119
08.04.2015, 00:00 #3
typeid(object).name() возвращает название класса в виде строки

второй вариант не подходит таккак при выходе из блока s уничтожится
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2015, 00:00
Привет! Вот еще темы с ответами:

Как преобразовать указатель на класс к указателю на асбтрактный класс? - C++
Но тут есть одна тонкость- два промежуточных класса. Вот код, надеюсь всё из него понятно. #include <stdio.h> ...

Как проверить нулевой ли указатель? - C++
Как проверить нулевой ли указатель? Почему-то всегда думал что так: if (pointer) Но не работает Заранее спасибо!

Как проверить, быль ли удалён указатель или нет? - C++
С похмелья голову заклинило %-) X* x=new X(); delete x; if(x) ? или как? Как проверить, удалён на данный момент указатель...

Указатель на класс как поле класса - C++
Как работать с указателем в классе class A {}; class B {private: A * uk}; // как с ним работать?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru