Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
1

Расширение функции при наследовании

08.12.2015, 16:25. Показов 1151. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть класс А - базовый для В, единственное различие в функции Х,
Х в В отличается от Х в А только одной последней строчкой кода, как расширить ее, но НЕ переписывать!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A
{
public:
   virtual void X()
   {
        cout<<"A" ;
   }
};
 
class B : public A
{
public:
   virtual  void X()
   {
        cout<<"A" ;//...переписал...
        cout<<"B" ;
 
   }
};
Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2015, 16:25
Ответы с готовыми решениями:

Виртуальные функции при наследовании
выдает ошибку на конструктор 2 класса #include &lt;iostream&gt; using namespace std; class A{ ...

Выполнение не той функции при наследовании
#pragma hdrstop #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;tchar.h&gt; #include &lt;string&gt;...

Возвращение массива из функции при наследовании
Здравствуйте! У меня есть класс(Circle), который наследуется от нескольких базовых. Мне нужно...

Почему не перегружает функции при наследовании?
Почему не перегружает функции при наследовании? Есть класс Human с функцией void Say() и есть...

7
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
08.12.2015, 16:38 2
Лучший ответ Сообщение было отмечено _Valera_ как решение

Решение

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
#include <iostream>
#include <string>
using namespace std;
 
class A
{
public:
   virtual void X()
   {
      cout << "A";
   }
};
 
class B : public A
{
public:
   virtual  void X()
   {
      A::X();
      cout << "B";
 
   }
};
 
int main()
{
   A* ptr = new B();
   ptr->X();
}
1
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
08.12.2015, 16:41  [ТС] 3
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
A::X();
пробовал, не работает так
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
08.12.2015, 16:42 4
Я ведь сбросил рабочий компилируемый код)))

http://rextester.com/DSTT14614
1
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
08.12.2015, 16:47  [ТС] 5
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Я ведь сбросил рабочий компилируемый код)))
не спорю.

Пишет не статический метод класса
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
08.12.2015, 16:49 6
ну так скинь весь код свой - если не компилится тот, что компилит rextester - то проблема не в коде, а в компиляторе
1
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
08.12.2015, 17:12  [ТС] 7
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
ну так скинь весь код свой - если не компилится тот, что компилит rextester - то проблема не в коде, а в компиляторе
ага, в том и проблема, что код не мой(движок), а найти его реализацию я не могу.

Добавлено через 3 минуты
Цитата Сообщение от _Valera_ Посмотреть сообщение
его реализацию я не могу.
интерфейсы есть , их могу скинуть. И мои попытки наследовать...

Добавлено через 15 минут
Все, работает, ошибка была в невнимательности.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
08.12.2015, 17:12 8
Попробуйте override дописать и просто вызвать метод, если определит как перегрузку, но у него нету причин не работать. И будь то в базово этот метод в другой области видимости(private) ошибка была соответствующая а не про статик.
1
08.12.2015, 17:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2015, 17:12
Помогаю со студенческими работами здесь

функции с исключениями в наследовании
почему на такоеstruct B { class S {}; class SS :public S {}; virtual void f()throw(SS) {...

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

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

Ошибка при наследовании
Имеется архитектура вида: класс &quot;человек&quot;, от него производные &quot;препод&quot; и &quot;член приемной комиссии&quot;....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru