Методы с одинаковыми именами во множественном интеллектуальном виде в C ++ [дублировать]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Методы с одинаковыми именами во множественном интеллектуальном виде в C ++ [дублировать]

Сообщение Anonymous »

У меня есть программа < /p>

Код: Выделить всё

#include 

struct A {
virtual char f() = 0;
};

struct B {
virtual char f() = 0;
};

struct Derived : A, B {
public:
char A::f() override { return CA; }
char B::f() override { return CB; }

const char CA = 'A';
const char CB = 'B';
};

int main(int argc, char** argv)
{
Derived d;

A& a = d;

printf("%c", a.f());

return 0;
}
< /code>
Это работает нормально. Но когда я определяю :: f 
вне объявления, у меня есть ошибка.

Код: Выделить всё

struct Derived : A, B {
public:
char A::f() override;
char B::f() override { return CB; }

const char CA = 'A';
const char CB = 'B';
};

char Derived::A::f() { return CA; } //error C2509: 'f': member function not declared in 'Derived'
Мой вопрос в том, как правильно обратиться к :: f в определении?

Подробнее здесь: https://stackoverflow.com/questions/795 ... tance-in-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»