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

Неопределенность в абстракции - C++

Восстановить пароль Регистрация
 
 
RAFA91
Заблокирован
02.07.2016, 12:03     Неопределенность в абстракции #1
Добрый день.

Есть класс A от которого производится класс В и С.

У этих классов есть общий метод f1().

у класса B не должно быть метода f3(), а у С метода f2()

что-бы работал полиморфизм мне пришлось определить методы f2() и f3() в классе А.

чистыми их делать не могу, так как у класса B не должно быть метода f3(), а у С метода f2().

чистый тут только f1()

вся опасность в этом

C++
1
b->f3();  с->f2();
будут вызваны методы класса А.

В общем как это устранить при вышеизложенных требований.


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
34
35
36
37
#include <iostream>
using namespace std;
 
class A
{
    public:
    virtual~A() {}
    virtual void f1() = 0;
    virtual void f2() {cout<<"f2() class A"<<endl;}
    virtual void f3() {cout<<"f3() class A"<<endl;}
};
class B : public A
{
    public:
    void f1() {cout<<"f1() class B"<<endl;}
    void f2() {cout<<"f2() class B"<<endl;}
};
class C : public A
{
    public:
    void f1() {cout<<"f1() class C"<<endl;}
    void f3() {cout<<"f3() class C"<<endl;}
};
 
int main() 
{
    A *b = new B;
    A *c = new C;
    b->f1();
    b->f2();
        b->f3();      //????????????????????????????????????????
    cout<<"********************"<<endl;
    c->f1();
        c->f2();   //????????????????????????????????????????
    c->f3();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5342 / 1725 / 320
Регистрация: 10.12.2010
Сообщений: 5,108
Записей в блоге: 3
02.07.2016, 23:02     Неопределенность в абстракции #21
Цитата Сообщение от RAFA91 Посмотреть сообщение
динамик каст даже не предлагайте
А в чем проблема с кастом?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ferrari F1
Заблокирован
295 / 281 / 61
Регистрация: 27.01.2015
Сообщений: 1,888
Записей в блоге: 1
Завершенные тесты: 1
02.07.2016, 23:05     Неопределенность в абстракции #22
RAFA91, лови книгу. Думаю, с ней будет все понятнее...

Неопределенность в абстракции
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2016, 11:51     Неопределенность в абстракции
Еще ссылки по теме:

Java EE Интерфейс для абстракции доступа к данным
C++ Создать базовый класс, использовать свойства полиморфизма и абстракции
C# Абстракция, уровни абстракции

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

Или воспользуйтесь поиском по форуму:
RAFA91
Заблокирован
03.07.2016, 11:51  [ТС]     Неопределенность в абстракции #23
Цитата Сообщение от the11011 Посмотреть сообщение
можно попробовать через sealed и пару вспомогательных классов
попробуй. только не убей полиморфизм.
Цитата Сообщение от HighPredator Посмотреть сообщение
А в чем проблема с кастом?
оно мне не надо. это уже самый последний вариант.
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
с ней будет все понятнее...
понятней что ?
Yandex
Объявления
03.07.2016, 11:51     Неопределенность в абстракции
Ответ Создать тему
Опции темы

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