значения поумолчанию в виртуальных методах
От: dad  
Дата: 03.02.04 13:20
Оценка:
1) Правомочно ли замена значений по умолчанию в производных классах,
2) Регламентировано ли как то поведение , если правомочно (в моем примере
вызов метода через указатель s выдает 2, а метода через указатель p — 1)


#include <iostream>

class any
{
public:
    virtual void doit(long a = 1) = 0;
};

class son : public any
{
public:
    virtual void doit(long a = 2)
    {
        std::cout << a << std::endl;
    }
};

int main()
{
    any* p = new son();
    son* s = new son();    
    p->doit();    
    s->doit();
}

1
2


delete — ok
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.