Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ruccich
-11 / 1 / 0
Регистрация: 15.12.2016
Сообщений: 55
1

Взаимодействие между классами

12.04.2017, 07:20. Просмотров 857. Ответов 2
Метки нет (Все метки)

Суть проблемы такова: в одном файле classy.h объявлено несколько классов (classcontrol, class1, class2,class3). Необходимо сделать так, чтобы все функции классов можно было вызывать в файле срр. Формы через класс classcontrol. Этот класс должен быть интерфейсом для всех остальных классов - через него должно идти всё управление. Как это сделать? Пытался разными способами, но компилятор всё время указывает на ошибку.

class TClassControl {
private: // User declarations

public: // User declarations
__fastcall TClassControl ();
__fastcall~TClassControl (void);

};

class TCLASS1 {
private: // User declarations

public: // User declarations
__fastcall TCLASS1 ();
__fastcall~TCLASS1 (void);

int w,h;

void __fastcall ClassCreate();
};

class TCLASS2 {
private: // User declarations

public: // User declarations
__fastcall TCLASS2 ();
__fastcall~TCLASS2 (void);

int w,h;

void __fastcall ClassCreate();
};

//Вызов в файле срр.
TClassControl * clc = new TClassControl;

clc->фукнкция из класса TCLASS1.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2017, 07:20
Ответы с готовыми решениями:

Взаимодействие между классами
При попытке создать указатель на объект класса в public секции другого класса...

Связь между 2 классами
Есть 2 класса: Class A { private: B** arrayB;/нужно раньше объявить класс...

Реализация отношений между классами is-a, has-a, uses-a в С++
Где можно найти информацию по отношениям между объектами классов is-a, has-a,...

Передача данных между классами
Понимаю что это основы, но что-то я запутался... Есть основной класс программы...

Организация общения между классами
Использую следующую конструкцию. Есть общий класс , назовем его ядро(Core) от...

2
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
12.04.2017, 07:44 2
А объекты этих классов где будут?
0
Bretbas
Каждому свое
519 / 205 / 81
Регистрация: 05.08.2013
Сообщений: 1,610
Завершенные тесты: 2
12.04.2017, 08:22 3
Лучший ответ Сообщение было отмечено ruccich как решение

Решение

ruccich, Если classcontrol должен управлять классами class1, class2, class3, то соответственно он должен владеть ими.
C++
1
2
3
4
5
6
7
8
class classcontrol
{
public:
private:
class1* myClass1;
class2* myClass2;
class3* myClass3;
};
Теперь нужно разобраться, как он будет владеть ими. Можно создавать экземпляры классов class1, class2, class3 отдельно от экземпляра classcontrol, и потом просто передавать их классу classcontrol:
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
class classcontrol
{
public:
class1* getClass1() const {
return _myClass1;
}
class2* getClass2() const {
return _myClass2;
}
class3* getClass3() const {
return _myClass3;
}
 
void setClass1( class1* myClass1 ) {
_myClass1 = myClass1;
}
void setClass2( class2* myClass2 ) {
_myClass2  = myClass2;
}
void setClass3( class3* myClass3 ) {
_myClass3 = myClass3;
}
private:
class1* _myClass1;
class2* _myClass2;
class3* _myClass3;
};
или можно в конструкторе класса classcontrol создавать экземпляры классов class1, class2, class3:
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
class classcontrol
{
public:
classcontrol() {
_myClass1 = new class1();
_myClass2 = new class2();
_myClass3 = new class3();
}
~classcontrol() {
delete _myClass1;
delete _myClass2;
delete _myClass3;
}
class1* getClass1() const {
return _myClass1;
}
class2* getClass2() const {
return _myClass2;
}
class3* getClass3() const {
return _myClass3;
}
 
private:
class1* _myClass1;
class2* _myClass2;
class3* _myClass3;
};
Ну а управление через classcontrol однотипное:
C++
1
2
3
4
5
classcontrol myClassControl;
// Если мы создаем экземпляры классов class1, class2, class3 извне, то обязательно нужно передать их в myClassControl
myClassControl.getClass1() -> метод();
myClassControl.getClass2() -> еще_один_метод();
myClassControl.getClass3() -> ну_и_еще_один_метод();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2017, 08:22

Отношения между классами и объектами
Для каждого индивидуального варианта необходимо создать консольную программу...

Отличия между структурами и классами
Объясните пожалуйста, в С++, получается, что структура отличается от класса...

Указатель на функцию между классами
Есть вот такой код(опыта с заголовочными файлами мало, т.к. больше времени...


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

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

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