Информация об изменениях

Сообщение Re: почему ругается компилятор? MSVC 2010 от 30.06.2025 15:33

Изменено 30.06.2025 16:02 rg45

Re: почему ругается компилятор? MSVC 2010
Здравствуйте, sushko, Вы писали:

S>Visual C++ 2010. Компилятор ругается на вызов child.print(10) в _tmain: ему не хватает аргументов.


S>Скажите, что я делаю не так?


S>
S>#include "stdafx.h"

S>class Parent
S>{
S>public:
S>    virtual void print(int x)
S>    {
S>        printf("%d", x);
S>    };
S>};

S>class Child: public Parent
S>{
S>    virtual void print(int x, int y)
S>    {
S>        printf("%d %d", x, y);
S>    };
S>};

S>int _tmain(int argc, _TCHAR* argv[])
S>{
S>    Child child;
S>    child.print(10);
S>    return 0;
S>}

S>


Parent::print не оверрайдит (override), а скрывает (hide) Child::print.

Добавь в Child using декларацию:

using Parent::print.
Re: почему ругается компилятор? MSVC 2010
Здравствуйте, sushko, Вы писали:

S>Visual C++ 2010. Компилятор ругается на вызов child.print(10) в _tmain: ему не хватает аргументов.


S>Скажите, что я делаю не так?


S>
S>#include "stdafx.h"

S>class Parent
S>{
S>public:
S>    virtual void print(int x)
S>    {
S>        printf("%d", x);
S>    };
S>};

S>class Child: public Parent
S>{
S>    virtual void print(int x, int y)
S>    {
S>        printf("%d %d", x, y);
S>    };
S>};

S>int _tmain(int argc, _TCHAR* argv[])
S>{
S>    Child child;
S>    child.print(10);
S>    return 0;
S>}

S>


Parent::print не оверрайдит (override), а скрывает (hide) Child::print.

Добавь в Child using декларацию:

public:
    using Parent::print;