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

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

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
#1

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

19.06.2011, 21:04. Просмотров 573. Ответов 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, а он непонятно в каком месте может быть определён и его может быть трудно найти. Помогите, друзья!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 21:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть базовый и производный класс, в базовом определена функция, необходимо её объявить в производном! (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.06.2011, 21:08 #2
базовый класс ничего не может знать о производном
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
19.06.2011, 21:19 #3
kravam, вставьте на это место просто закомментированный код функции из базового класса, если уж очень хочется видеть сам код.
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
19.06.2011, 21:21  [ТС] #4
Я понимаю, но я это правило никоим образом не нарушаю. Я всего лишь хочу написать объявление уже определённой функции. В общем случае это можно, надеюсь и здесь можно тоже.

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

Добавлено через 1 минуту
код функции- это три этажа. Да ну его.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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);
    }
};
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
19.06.2011, 21:34  [ТС] #6
Ну что ж, вариант. Хотя я думал можно как-то проще.
silentnuke
Android Programmer
139 / 140 / 5
Регистрация: 08.12.2010
Сообщений: 421
19.06.2011, 21:40 #7
если вы хотите переопределить функцию в дочернем классе, сделайте её виртуальной (virtual)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2011, 21:40
Привет! Вот еще темы с ответами:

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

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

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

Базовый класс и производный... - C++
Есть class A. У него есть функция protected foo(); Есть класс наследник B (class B: public A). В классе-наследнике B есть функция g(),...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.06.2011, 21:40
Ответ Создать тему
Опции темы

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