наследование
От: mPronin  
Дата: 15.09.11 16:52
Оценка:
Прокомментируйте плиз как это понимать. (VS 2005)

class foo
{
public:
    virtual void fun(int) {}
    virtual void fun(std::string&) {}
};

class bar : public foo
{
public:
    virtual void fun(std::string&){}
};

int main()
{
    bar * b = new bar();
    b->fun(0);

    return 0;
};


error C2664: 'bar::fun' : cannot convert parameter 1 from 'int' to 'std::string &'

Re: наследование
От: vayerx  
Дата: 15.09.11 16:57
Оценка: 9 (3) +1
Здравствуйте, mPronin, Вы писали:

P>Прокомментируйте плиз как это понимать. (VS 2005)

сокрытие имени в базовом классе

class foo
{
public:
    virtual void fun(int) {}
    virtual void fun(std::string&) {}
};

class bar : public foo
{
public:
    using foo::fun;
    virtual void fun(std::string&){}
};


P> error C2664: 'bar::fun' : cannot convert parameter 1 from 'int' to 'std::string &'
Re: Как работать с форумом, гуглом и прочим...
От: Erop Россия  
Дата: 16.09.11 08:03
Оценка:
Здравствуйте, mPronin, Вы писали:

P>Прокомментируйте плиз как это понимать. (VS 2005)


Правильнее всего это надо понимать так, что хорошо бы найти учебник, справочник, а ещё лучше стандарт С++, только надо такой доумент искать, с которым ты умел бы раьотать. Вот MSDN, напрмиер, в контексте VS очень даже рулит. В любом случае надо там смотреть, если чего не понимешь...

Еще, кстати, конкретно в разборе непонятных тебе ошибко компилятора нереально заруливает гугол
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.