Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1706 / 893 / 105
Регистрация: 04.06.2008
Сообщений: 5,524
#1

Есть базовый и производный класс, в базовом определена функция, необходимо её объявить в производном! - C++

19.06.2011, 21:04. Просмотров 638. Ответов 6
Метки нет (Все метки)

Как-то так, что ли:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class x {
 public:
  void f_0 (){};        
};
 
class y: public x {
 public:
  
  //Тут у меня пойдёт объявления разных функций, которые делают то-то и то-то
  
  //А тут хочется написать, что делает функция f_0, но не могу, ибо не компилится сей код! 
  void x::f_0 ();        
};
 
int main(){}
Но не получается. А так-то я пользовался бы классом y и смотрел, что делает в нём каждая из функций, а теперь чтобы посмотреть, что делает функция f_0, я должен лезть в класс x, а он непонятно в каком месте может быть определён и его может быть трудно найти. Помогите, друзья!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 21:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Есть базовый и производный класс, в базовом определена функция, необходимо её объявить в производном! (C++):

базовый и производный класс, в базовом объявлена переменная "protected", она недоступна по имени в производном классе! template <class T> воду мутит!
Друзья! Вот код #include &lt;stdio.h&gt; template &lt;class T&gt; class otets { protected: int peremennaya; }; template &lt;class...

Указатели в базовом классе на базовый класс и производный класс
Пишу контейнер &quot;Бинарное дерево поиска&quot; для частотного словаря. С самим контейнером особо вопросов нету. Вопрос по поводу элементов в...

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это?
Ну то есть базовый класс A, с полями, допустим, a, b, c, d. И я проектирую производный класс B и я железно знаю, что он будет использовать...

Наследование классов: почему производный класс не учитывает данные, введенные в базовом?
Почему при компилляции производный класс не учитывает данные, введенные в базовом? #include &lt;iostream&gt; using namespace std; ...

Базовый класс Complex и производный класс для реализации квадратных матриц
1) Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними:...

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...

6
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.06.2011, 21:08 #2
базовый класс ничего не может знать о производном
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
19.06.2011, 21:19 #3
kravam, вставьте на это место просто закомментированный код функции из базового класса, если уж очень хочется видеть сам код.
0
kravam
быдлокодер
1706 / 893 / 105
Регистрация: 04.06.2008
Сообщений: 5,524
19.06.2011, 21:21  [ТС] #4
Я понимаю, но я это правило никоим образом не нарушаю. Я всего лишь хочу написать объявление уже определённой функции. В общем случае это можно, надеюсь и здесь можно тоже.

Добавлено через 53 секунды
Цитата Сообщение от silent_1991 Посмотреть сообщение
kravam, вставьте на это место просто закомментированный код функции из базового класса, если уж очень хочется видеть сам код.
да вы что ни за что, не хочется мне видеть код! Просто объявление и всё!

Добавлено через 1 минуту
код функции- это три этажа. Да ну его.
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
19.06.2011, 21:24 #5
kravam, так объявите эту функцию точно таким же образом, и в теле просто вызывайте функцию базового класса. Т.е. явно выполните то, что компилятор делает неявно.

Добавлено через 1 минуту
Т.е. так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Foo
{
public:
    void func(int a, double b) const;
};
 
class Bar : public Foo
{
public:
    void func(int a, double b) const
    {
        Foo::func(a, b);
    }
};
1
kravam
быдлокодер
1706 / 893 / 105
Регистрация: 04.06.2008
Сообщений: 5,524
19.06.2011, 21:34  [ТС] #6
Ну что ж, вариант. Хотя я думал можно как-то проще.
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
19.06.2011, 21:40 #7
если вы хотите переопределить функцию в дочернем классе, сделайте её виртуальной (virtual)
0
19.06.2011, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2011, 21:40
Привет! Вот еще темы с решениями:

Создать базовый класс - Array и производный класс - Money для работы денежной суммы
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для работы денежной суммы

Создать базовый класс Triad и производный класс vector3D
Помогите пожалуйста с заданием. Часть кода(vector3D) сделал, вроде работает Нужно помочь с классом Triad. Вот полное задание: ...

Наследование: базовый класс Квадрат, производный класс Пирамида
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна стороны. Предусмотреть в классе методы...

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения, состоящего и - Базовый класс:...


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

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

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