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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
#1

Сокрытие методов при наследовании - C++

06.10.2012, 10:18. Просмотров 1475. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A {
public:
void Draw(double){}
};
 
class B : public A {
public:
void Draw(int){}
};
 
int main(){
B b;
b.Draw(10.5);
returb 0;
}
Выдает ошибкупри вызове функции. после наследования не видит "Draw(double)". почему?

компилятор msvs2012
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 10:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сокрытие методов при наследовании (C++):

Реализация двух виртуальных методов с одинаковыми именами при множественном наследовании - C++
Доброй ночи. Надеюсь, я внятно описал что меня интересует в названии топика. Теперь распишу детальней, что хочу: Есть два абстрактных...

Использование шаблонов при наследовании, ошибка при компиляции - C++
При изучении списков написал шаблон протестировал, все работает. После написал класс наследник от шаблона List.h, компилятор выдает...

Ошибка при наследовании - C++
Имеется архитектура вида: класс "человек", от него производные "препод" и "член приемной комиссии". От их двоих производный класс "Препод и...

Ошибка при наследовании - C++
Привет! Ни как не могу разобраться, в чём дело. Создал 2 класса: Base и Derived, где Derived наследует Base. Но при компиляции возникает...

Деструктор при наследовании - C++
Имеется 3 класса (базовый -> производный -> производный2) в классе базовый имеется переменная char* var; в производном тоже есть 1...

Ошибка при наследовании - C++
Вот такой код: class Figure2 { protected: int Color; int CenterX; int CenterY; public:

8
Mиxaил
534 / 439 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
06.10.2012, 10:29 #2
Цитата Сообщение от Kgfq Посмотреть сообщение
returb 0;
C++
1
return 0;
0
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
06.10.2012, 10:44  [ТС] #3
ошибка именно в том, что не видит функцию.
с rerurb - опечатка, в коде ее нету
0
igorrr37
1859 / 1477 / 231
Регистрация: 21.12.2010
Сообщений: 2,462
Записей в блоге: 11
06.10.2012, 10:59 #4
если только явно вызвать
b.A :: Draw(10.5);
0
MrCold
859 / 757 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
06.10.2012, 10:59 #5
http://liveworkspace.org/code/1994740e402590aa9e1caa0b36688a33
Все видит .
0
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
06.10.2012, 11:23  [ТС] #6
MrCold,
igorrr37, явно - да, но мне нужно неявно
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
06.10.2012, 11:28 #7
Определение в дочернем классе перекрыло определение из базового. Нужно сделать метод базового класса видимым в дочернем:
C++
1
2
3
4
5
class B...
{
...
using void Draw(double);
};
0
igorrr37
1859 / 1477 / 231
Регистрация: 21.12.2010
Сообщений: 2,462
Записей в блоге: 11
06.10.2012, 11:35 #8
или так
C++
1
2
3
4
5
6
7
8
class B : public A {
public:
    using A::Draw;
    void Draw(int)
    {
        std::cout << "B::Draw" << std::endl;
    }
};
1
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
07.10.2012, 12:52  [ТС] #9
Deviaphan, ваш способ не работает
0
07.10.2012, 12:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 12:52
Привет! Вот еще темы с ответами:

Сравнение при наследовании - C++
Есть базовый класс, пусть его зовут А, а у него есть 4 потомка. Пусть их зовут: B, C, D и E. Базовый класса абстрактный,в нём есть...

Ошибка при наследовании - C++
Здраствуйте,не могу понять где именно оштбся,возможно кто-то поможет,код прилагаю //#include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Ошибка при наследовании? - C++
Программа компилируется, но консоль не выдает информацию. Связано ли это как то с переполнением буфера? Программа небольшая укажите...

Неоднозначность при наследовании - C++
Привет народ, думаю мой вопрос покажется вам чем-то из разряда &quot;лучше бы делом занялся&quot;, но тех у кого останется терпение, прошу помочь мне...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru