Форум программистов, компьютерный форум CyberForum.ru

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) - C++

Восстановить пароль Регистрация
 
AntonIv
20 / 14 / 4
Регистрация: 19.10.2015
Сообщений: 61
19.12.2015, 21:09     Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) #1
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов.

Как вынести методы из классов Panel и PictureBox?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//===========================================================================//
class IPicture
{
public:
    virtual void Draw() = 0;
};
//===========================================================================//
class IBorder
{
public:
    virtual void Draw() = 0;
};
//===========================================================================//
class Panel : public IPicture, public IBorder
{
public:
    void IPicture::Draw()
    { cout << "Panel::IPicture::Draw()\n"; }
 
    void IBorder::Draw()
    { cout << "Panel::IBorder::Draw()\n"; }
};
//===========================================================================//
class PictureBox : public IPicture, public IBorder
{
public:
    void IPicture::Draw()
    { cout << "PictureBox::IPicture::Draw()\n"; }
 
    void IBorder::Draw()
    { cout << "PictureBox::IBorder::Draw()\n"; }
};
//===========================================================================//
Такой код почему то не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
void Panel::IPicture::Draw()
{ cout << "Panel::IPicture::Draw()\n"; }
 
void Panel::IBorder::Draw()
{ cout << "Panel::IBorder::Draw()\n"; }
 
void PictureBox::IPicture::Draw()
{ cout << "PictureBox::IPicture::Draw()\n"; }
 
void PictureBox::IBorder::Draw()
{ cout << "PictureBox::IBorder::Draw()\n"; }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2015, 21:09     Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Посмотрите здесь:

определение классов и методов C++
Класс наследуемый от двух базовых классов C++
Ошибка в инициализации базовых классов C++
C++ List (STL) не пользуется конструкторами копий базовых классов
C++ Использование базовых и производных классов
Структура наследования базовых/производных классов: error LNK 1104 C++
Продолжение цепочки наследования без дублей базовых классов C++
Модель электронного устройства с использованием абстрактных классов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AntonIv
20 / 14 / 4
Регистрация: 19.10.2015
Сообщений: 61
21.12.2015, 00:12  [ТС]     Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) #2
Ошибка линковки...

И еще вопрос: такую реализацию принимает только VC++ или и другие компиляторы?
Yandex
Объявления
21.12.2015, 00:12     Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Ответ Создать тему
Опции темы

Текущее время: 03:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru