Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,613
1

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

19.06.2011, 21:04. Просмотров 742. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2011, 21:04
Ответы с готовыми решениями:

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

Один и тот же метод объявлен в базовом private, а в производном public; и по ссылке на производный класс он не вызывается!
Прежде всего, вот код который компилится и работает, он описан у Эккеля (глава 8 &quot;Полиморфизм&quot;): ...

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

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

6
Каратель
Эксперт С++
6594 / 4015 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
19.06.2011, 21:08 2
базовый класс ничего не может знать о производном
0
Эксперт С++
5037 / 3097 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
19.06.2011, 21:19 3
kravam, вставьте на это место просто закомментированный код функции из базового класса, если уж очень хочется видеть сам код.
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,613
19.06.2011, 21:21  [ТС] 4
Я понимаю, но я это правило никоим образом не нарушаю. Я всего лишь хочу написать объявление уже определённой функции. В общем случае это можно, надеюсь и здесь можно тоже.

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

Добавлено через 1 минуту
код функции- это три этажа. Да ну его.
0
Эксперт С++
5037 / 3097 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
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
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,613
19.06.2011, 21:34  [ТС] 6
Ну что ж, вариант. Хотя я думал можно как-то проще.
0
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
19.06.2011, 21:40 7
если вы хотите переопределить функцию в дочернем классе, сделайте её виртуальной (virtual)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2011, 21:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Необходимо по инстанциировать производный класс по имени и запустить метод описанный в его базовом классе.
Есть несколько классов, наследованных от класса Parent. класс Parent содержит метод writeData....

Создание ссылки на производный класс в базовом классе
Доброго времени суток. Есть такой вопрос: &quot;Как обратиться к методам производного класса из...

Наследование классов: почему производный класс не учитывает данные, введенные в базовом?
Почему при компилляции производный класс не учитывает данные, введенные в базовом? #include...

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

Описать базовый класс колоды карт и производный класс пасьянс
Здраствуйте! товарищи-программисты, помогите пожалуйста со следующим заданием: Создать колоду...

Класс: Дописать производный класс, дополняющий базовый и содержащий минимум 2 функции-члена...
Составьте программу на языке С#, которая должна содержать: 1) базовый класс в соответствии с...


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

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

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