Автор Гілка: Різні особливості C++  (Прочитано 2879 раз)

Відсутній intracer

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
  • I Love YaBB 2!

#include <iostream>
using namespace std;
class Parent
{
   public:
      virtual int doIt (int v)
      {
          return v * v;
      }
};
class Child : public Parent
{
   public:
      int doIt (int v,
                 int av = 20)
      {
          return v * av;
      }
};
int main()
{
   int i;
   Parent *p = new Child();
   i = p->doIt(3);
      cout<<i;
}

 ;D

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Різні особливості C++
« Відповідей #1 : 2006-06-26 13:52:02 »
Я очікував побачити 9. Програма видала - 9  (gcc-4.0.2-8.fc4). Чому  " ;D " ?
[Fedora Linux]

Відсутній intracer

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Різні особливості C++
« Відповідей #2 : 2006-06-26 14:31:42 »
та все вірно. але можливо хтось очікував щось інше.

Відсутній G

  • Новачок
  • *
  • дописів: 16
  • Карма: +0/-0
  • Що новенького?
Re: Різні особливості C++
« Відповідей #3 : 2006-07-19 17:22:42 »
цікаво, хто і шо міг очікувати іншого від цього коду. дивно все-таки...

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Різні особливості C++
« Відповідей #4 : 2006-07-21 12:31:08 »
Десь в Страуструпа читав, що такі фокуси писати не гарно: дві фії з однаковими іменами і параметри, що не передаються за замовчуванням належать одному типу - в результаті запуску отримуємо:  ";D"
Чітко не відомо, яку саме функцію треба запустити в даному випадку: інший компілятор міг би видати і 60...
За цю осо бливість і ще деякі навороти напр. те саме using namespace std; і не використовую С++ звичайне С мене цілком влаштовує :)
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.