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

НЕнаследование чисто виртуальной функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выравнивающие биты в BMP http://www.cyberforum.ru/cpp-beginners/thread946953.html
Здравствуйте. Прошу помощи, не могу найти ошибку в коде. Задача обработать взвешенным ранговым фильтром бмп файл и результат переписать в другой бмп. Сам фильтр реализован верно, подозреваю что...
C++ Массив: Определить наименьший по модулю отрицательный элемент? В одномерном массиве нудно определить наименьший по модулю отрицательный элемент. Помогите. Весь мозг уже сломал..... http://www.cyberforum.ru/cpp-beginners/thread946945.html
Классы и объекты C++
Такая ситуация: есть кусочек кода, не несущего смысловой нагрузки. while(a < b) а++; где a и b объекты самопального класса сверхбольших чисел. Арифметические операции и операции сравнения...
C++ Самоучитель от Дейтела врет?
Почему в самоучителе по С++ от Дейтела Х, программа, выводящая текст записана так: #include <iostream> int main() { std::cout<< "Welcome\n";
C++ у кого VS2010? http://www.cyberforum.ru/cpp-beginners/thread946908.html
Поделитесь такими файликами. В инете с левого источника боюсь качать. msvcp100.dll msvcr100.dll Находятся они по адресу Program Files\Microsoft Visual Studio...
C++ MinGW Developer Studio Всем здраствуйте! Просьба! Не кидайте сразу помидорами, если вопрос очень уж глупый))) Я только начинаю разбираться, первые шаги так сказать))) Скачала я среду MinGW Developer Studio, создаю... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6486 / 3130 / 307
Регистрация: 04.12.2011
Сообщений: 8,644
Записей в блоге: 5
01.09.2013, 23:36
Цитата Сообщение от oodessit Посмотреть сообщение
этот метод, вообще, не будет использоваться в классе D. Поэтому мне необходимо совсем от него избавиться в классе-наследнике
Боюсь ответа, но спрошу: как собираетесь это сделать? Помните совет проф. Преображенского Борменталю: -"На преступление не идите никогда, против кого бы оно ни было направлено!"
Если не определить чисто виртуальный метод, то он останется не определённым и класс будет абстрактным.
Можно необходимые данные и методы собрать в неабстрактном классе унаследовав от него абстрактный. От абстрактного B и С, а D унаследовать от того, что выше абстрактного:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
class Adat
{
public:
int a,b,c;
Adat(int a_, int b_, int c_):a(a_), b(b_), c(c_){}
 
};
 
class Aabstr :public Adat
{
public:
virtual void showMyClass()=0;
Aabstr(int a_, int b_, int c_):Adat(a_, b_, c_){}
};
class B  :public Aabstr
{
protected:
void showMyClass(){cout<<"B"<<endl;}
public:
B(int a_, int b_, int c_):Aabstr(a_, b_, c_){}
};
class C  :public Aabstr
{
protected:
void showMyClass(){cout<<"C"<<endl;}
public:
C(int a_, int b_, int c_):Aabstr(a_, b_, c_){}
};
 
class D  :public Adat
{
public:
D(int a_, int b_, int c_):Adat(a_, b_, c_){}
void showMyClass(){cout << "D( "<< a << ", " << b << ", " << c << " )" << endl;}
};
 
int main()
{
Aabstr *b = &B(1,2,3);
b->showMyClass();
cout<<b->a<<endl;
b=&C(3,4,5);
b->showMyClass();
cout<<b->a<<endl;
D d(7,8,9);
d.showMyClass();
cin.get();
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru