Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Alan85

Забанен


Сообщения: 463
Благодарности: 91

Профиль | Цитировать


Код: Выделить весь код
#include <iostream>
using namespace std;
class A
{
  public:
  virtual void foo() {cout << "A::foo()\n";}
}    ;
class  C
{
 public:
  C(A& a) {a.foo();}
}   ;

class B : public A
{
 public:
  void foo() {cout << "B::foo()\n";}
}  ;
main()
{
  B* b=new B();
  A *a=b;
  a->foo();
  b->foo();
  cin.get();
}
а тут слово virtual имеет значение. Тут типичный случай полиморфизма - объект A подменяет свои виртуальные функции функциями из объекта B.

Отправлено: 19:50, 19-03-2009 | #7