Приведение типа указателя
От: Eldar9x  
Дата: 05.03.08 10:21
Оценка:
Привет всем!
Допустим есть такая иерархия:
class A    {
public:
    virtual void do_it() {           
        std::cout << "a method " << std::endl;
    }
};

class B : public A {
public:
    virtual void do_it() {
        std::cout << "b method " << std::endl;                
    }
};

class C : public B {
public:
    virtual void do_it() {
        std::cout << "c method " << std::endl;                
    }
};


Создаем объект класса и вызываем его метод:
A * a = new C();
a->do_it();

получаем "c method"

получить указатель типа (A*) легко:
A * a = new C();
a->A::do_it(); // "a method"

или
A * a = new C();
a = new A(*A)
a->do_it(); // "a method"


Каким образом привести указатель к типу B*?
int i;
i = (i++)+(i++);
cout << i;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.