Тип указателя базового класса, указывающего на объект производного класса

Меняется ли тип указателя базового класса, указывающего на объект производного класса?

Если у меня есть что-то вроде:

class base{
public:
int a;
void doit();
};

class derived : public base {
public:
int a,b;
void doit();
}

И тогда я делаю следующее задание:

base *b = new derived;
cout << typeof(b);

Изменится ли тип указателя b на указатель производного или он останется прежним, т.е. указатель на базу? и почему?

0

Решение

Код должен быть таким:

          class A
{};

class B:public A
{};int main()
{

A* a= new B();

cout<<typeid(a).name()<<endl;
}

выход: класс А *.

Поскольку тип подразумевает тип указателя (который является базовым *), а не тип объекта, на который он указывает.

2

Другие решения


По вопросам рекламы [email protected]