Написать Коментарии К Коду

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
abcgeorgii
Сообщения: 10
Зарегистрирован: 28 апр 2013, 19:53

Код: Выделить всё

#include <iostream>
class S {
 public:
   virtual int get() = 0;};
class A1 : public S {
 public:
   virtual int get() {
      return a1;
   }
 private:
   int a1;
};
class A2 : public A1 {
 public:
   virtual int get() {
      return a2;
   }
 private:
   int a2;
};
int main() {
   A1 *a1 = new A1();
   A1 *a2 = new A2();
   A2 *test = 0;
   test = dynamic_cast< A2 * >( a1 );
   if ( test != 0 )
      std::cout << "a1 is A2 object" << std::endl;
   else
      std::cout << "a1 is not A2 object" << std::endl;
   test = dynamic_cast< A2 * >( a2 );
   if ( test != 0 )
      std::cout << "a2 is A2 object" << std::endl;
   else
      std::cout << "a2 is not A2 object" << std::endl;
 system("pause");
   return 0;}
Помогите написать коментарии. Заранее спасибо.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Выглядет как выполнения задания преподавателя, который хочет, чтобы студент разобрался в программе, которую написал не сам. Мне кажется, что преподаватель более, чем прав, требуя понимания. Предлагаю разобраться в коде самостоятельно, а действительно непонятный места указать нам - мы объясним, что там происходит.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить