Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
nammidd
10 / 10 / 2
Регистрация: 05.06.2016
Сообщений: 181
1

Передача информации из класса в класс

18.03.2017, 00:13. Просмотров 366. Ответов 3
Метки нет (Все метки)

Хочу написать программу разделённую на классы, может кто подсказать как сделать чтобы классы имели доступ друг к другу, где правильно создавать их объекты и т.д., просто все заголовочные файлы я ведь не могу включать друг в друга.
Вот написал небольшой пример: объект класса B создаётся в классе A, грубо говоря класс A может брать поля и методы класса B, но что касается класса B, как сделать чтобы он мог использовать поля класса A?

main.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
#include "classA.h"
 
int main()
{
    A a;
    
    return 0;
}


classA.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
#include "classB.h"
 
class A
{
public:
    A();
private:
    int i = 20;
    B b;
};


classB.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
class B
{
private:
    int j = 40;
public:
    void function();
};


classA.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
#include "classA.h"
 
A::A()
{
    b.function();
}


classB.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
#include "classB.h"
 
void B::function()
{
    std::cout << j << std::endl;
    // std::cout << A::i << std::endl;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2017, 00:13
Ответы с готовыми решениями:

Передача переменной из класса А в класс Б
Добрый день. По какой-то причине не получается получить переменную из другого класса. class A...

Передача параметра из класса в класс
Добрый вечер. Я передаю цвет квадратика(класс square) в функция стирания треугольника(класс...

Передача вектора из класса в класс?
Доброго времени суток! У меня возникла проблема в очень простой программе. Я передаю функции из...

Передача указателя функции класса A в класс B
Добрый день! Стоит задача вызывать функцию другого класса в потоке, ну что то типа этого: ...

Передача указателя в класс на объект другого класса
Не могу передать ссылку на объект класса в другой класс main.cpp #include &lt;iostream&gt;...

3
DU3
281 / 233 / 114
Регистрация: 07.09.2016
Сообщений: 587
18.03.2017, 00:19 2
форвард декларация + указатель а не объект в классе B:
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
/////////////////////////////////////////
// B.h
class A; // forward declaration
class B
{
private:
    A* a;
    int j = 40;
public:
    void function();
};
 
/////////////////////////////////////////
// B.сpp
#include "B.h"
#include "A.h"
 
...
 
void B::function()
{
   a->i = 0; // при условии, что A::i публично или B - друг класса A
}
 
...
0
OlafNestandart
55 / 55 / 31
Регистрация: 24.10.2016
Сообщений: 186
18.03.2017, 00:20 3
Цитата Сообщение от nammidd Посмотреть сообщение
// std::cout << A::i << std::endl;
Так в любом случае не получится - поле i класса A во первых - не статическое, и во вторых - приватное.
0
nammidd
10 / 10 / 2
Регистрация: 05.06.2016
Сообщений: 181
18.03.2017, 00:27  [ТС] 4
Цитата Сообщение от OlafNestandart Посмотреть сообщение
Так в любом случае не получится - поле i класса A во первых - не статическое, и во вторых - приватное.
Это для примера то что мне примерно нужно, я описал лишь суть. А вообще дополню то что в моей реальной программе планируется большое количество больших классов, я просто даже на начальном этапе не знаю как правильно наладить коммуникацию между ними.
0
18.03.2017, 00:27
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2017, 00:27

Передача вектора структур из класса в другой класс
Здравствуйте форумчане, собсно есть два класса в первом создаётся и заполняется вектор...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { ...

Передача свойства одного экземпляра класса другому экземпляру класса
#include &lt;tchar.h&gt; class A { public: A(); int aVar; }; class B : public A


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

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

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