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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
paladinama
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
#1

Родительский и дочерний класс - C++

26.07.2013, 19:30. Просмотров 1406. Ответов 20
Метки нет (Все метки)

Всем доброго времени суток. Возникла проблема;
C++
1
2
3
4
5
//file Base.h
#include "Children.h"
class Base {
public: Children* a;
}
C++
1
2
3
4
5
//file Children.h
#include "Base.h"
class Children: public Base {
...
}
Пишет: 'Children' does not name a type
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2013, 19:30     Родительский и дочерний класс
Посмотрите здесь:

Родительский и дочерний процесс - C++
Для начала код. ProcessA#include <windows.h> #include <iostream> #include <stdio.h> int main() { STARTUPINFO si;...

Используя родительский класс - C++
Используя родительский класс «РАБОЧИЙ» породить производный класс «ДИРЕКТОР». Используя классы «ФИРМА» и «ДИРЕКТОР», описать класс...

ошибки с указателем на родительский класс - C++
задание: сделать 3 класса: список, стек(списком), очередь(списком). Методы: вывод, добавление, удаление. Использовать при обращении...

Передача объекта-наследника по r-value ссылке на родительский класс - C++
Здоровеньки булы. Собственно, код: class x { protected: int a; public: x() {} x(int i) : a(i) {} x(const x&...

Простое наследование в с++. Базовый класс (AEROFLOT) и дочерний (REIS) - C++
Есть два класса: базовый (AEROFLOT) и дочерний (REIS). При компиляции у меня конструктор по умолчанию базового класса вызывается два раза....

Родительский класс неявно влияет на значение переменной наследника - C++
Написал элементарную программу на тему наследования: есть родительский класс, у которого есть 2 наследника. У наследников есть свои...

Обязан ли дочерний класс реализовать все виртуальные функции отца? - C++
Обязан ли дочерний класс реализовать все виртуальные функции отца? Такой вот вопрос у меня на ум пришел, правильно ли? или я в чем то...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.07.2013, 13:06     Родительский и дочерний класс #16

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
что за наезды? Ты вот не помнишь, а мне вот и не в своём коде, а очень даже в чужом коде всегда не лень посмотреть, какие конкретно зависимости нужны в срр файле.
такая куйня никому не нужна в продакшн коде



Добавлено через 20 секунд

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Я уж не хочу повторять о том, что хранить в Base указатели на каких-то Children выглядит полным бредом.
с этим согласен



Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Заголовки должны быть заголовками. И каждый раз делая инклюд нужно чётко представлять, как будет выглядеть итоговый срр файл после препроцессора.
а теперь представь себе это на уровне проекта типа ГНУ/Линукс...а ну ты ж не уважаешь линукс...
ну тогда представь себе это на уровне вебкита или vlc или любой другой популярной программы/двигла/чего-угодно, где количество строк кода исчисляется миллионами.
иначе как хеллоувордным такой подход назвать нельзя, без обид.

paladinama
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
27.07.2013, 15:05  [ТС]     Родительский и дочерний класс #17
Ну теперь работает, только появилась другая проблема;
Кликните здесь для просмотра всего текста

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
// base.h
#ifndef BASE_H
#define BASE_H
 
class Children;
 
class Base {
public: 
    Children* a;
ListView* pList;
    void UpdateList(void);
 
};
 
#endif
 
//file Children.h
#ifndef CHILDREN_H
#define CHILDREN_H
 
#include "Base.h"
 
class Children: public Base {
void GO(void);
...
};
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
//file base.cpp
Base::Base() {}
Base::UpdateList(void) {
pList->Update();
}
...
//какятофункци {
pList = new ListView();
a->GO();
}
C++
1
2
3
4
5
//file Children.cpp
Children::GO(void) {
...
Base::UpdateList();
}


В общем крашится при попытке обновления. Насколько я понял Base::UpdateView() создает новый экземпляр класса Base?
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
27.07.2013, 15:25     Родительский и дочерний класс #18
Я ещё раз обращаю твоё внимание на неверную иерархию классов.
Наследование означает, что каждый экземпляр класса Children будет являться ещё и экземпляром базового.
То есть каждому из детей можно будет сделать UpdateList.
Ты уверен, что тебе это нужно?
Вообще говоря, наследование не следует использовать вместо агрегации, если его возможно ею заменить!

Короче, опиши подробно задачу и я скажу, почему тут не нужна такая конструкция!
paladinama
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
27.07.2013, 16:06  [ТС]     Родительский и дочерний класс #19
В общем так. Есть два класса( Form и Downloader). В Downloader все, что связано с загрузкой данной из нета, а Form собственно сама форма. В этой форме есть список.

Я нажимаю например кнопку на форме. Вызывается функция загрузки из класса Downloader. Эта функция делает n-oe количество одинаковых действий и после каждого действие она должна обновить список на форме. И вот как по нормальному сделать я хз. Я же рак в с++=)
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.07.2013, 16:11     Родительский и дочерний класс #20
paladinama, гуглите callback
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2013, 00:01     Родительский и дочерний класс
Еще ссылки по теме:

базовый,дочерний , дружественная функция - C++
Базовый класс в нем будет массив имен из 10 элементов , конструктор должен сам заполнить этот массив любыми именами , второй класс...

Передача аргументов из родительского в дочерний процесс - C++
Привет всем! Подскажите, пожалуйста! как передать аргументы argv функции main() из родительского в дочерний процесс?

Передать параметр в дочерний процесс через execl() - C++
Немного не по теме .. но может кто знает , как это сделать Создаю дочерний процесс . В него нужно передать число , которое вводится в...

Передача значения переменной из родительского класса в дочерний - C++
Приветствую. Есть код: class ychebnik { protected: int A; public: ychebnik(){}; void setDate(int a)

Передача типа из производного класса в родительский - C++
Добрый день! Есть код: template<typename T> struct Base { void test(typename T::Axis aaa) {} }; struct Child :...


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

Или воспользуйтесь поиском по форуму:
paladinama
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
28.07.2013, 00:01  [ТС]     Родительский и дочерний класс #21
Ну и как его запихнуть ко мне?
Допустим в классе form
C++
1
2
3
4
... abc() {
  Downloader a;
  a.GO();
}
а в классу Downloade
C++
1
2
3
4
5
6
...GO() {
 for (int i = 1; i<10; i++) {
   //do something
   и вот тут надо вызвать функцию обновления из класса Form
 } 
}
Добавлено через 7 часов 42 минуты
Ну или на будущее скажите, как сделать двунаправленное взаимодействие между двумя классами.
Yandex
Объявления
28.07.2013, 00:01     Родительский и дочерний класс
Ответ Создать тему
Опции темы

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