LINUX.ORG.RU

C++ наследование


0

0

Чего это за фигня?

=== Cut ===
class A
{
public:
    void f() {}
    void f(int) {}
};

class B : public A
{
public:
    void f(float) {}
};

int main()
{
    B b;
    b.f();
}
=== Cut ===

muf@cocaine:~/ffff$ g++ dupa.cpp 
dupa.cpp: In function `int main()':
dupa.cpp:17: error: no matching function for call to `B::f()'
dupa.cpp:11: note: candidates are: void B::f(float)
muf@cocaine:~/ffff$ 

Можно поступить так:

 - При вызове явно указать облость видимости:
       b.A::f();
 - Внести имя f в облость видимости B:

   class B : public A
   {
    public:
      using A::f;
      void f(float) {}
   };   

aton
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.