Классы, использование членов друг друга

196
22 марта 2017, 18:28

Для того чтобы классы использовали члены друг друга я использую передачу объекта по указателю, forward declaration и включение в один из файлов исходного кода заголовочный файл другого класса, пример я привёл ниже. Я не так давно в программировании, не могли бы вы мне подсказать, есть ли другие способы чтобы классы использовали члены друг друга? Потому-что данный способ мне кажется слегка запутанным. Спасибо.

main.cpp

#include <iostream>
#include "MainClass.h"
int main()
{
    MainClass mainClass;
    return 0;
}

MainClass.h

#ifndef MAINCLASS_H
#define MAINCLASS_H
#include <iostream>
#include "OtherClass.h"
class MainClass
{
    friend class OtherClass;
public:
    MainClass();
private:
    int var1 = 100;
    OtherClass *otherClass;
};
#endif // MAINCLASS_H

MainClass.cpp

#include "MainClass.h"
MainClass::MainClass()
{
    std::cout << var1 << std::endl;
    otherClass = new OtherClass(this);
}

OtherClass.h

#ifndef OTHERCLASS_H
#define OTHERCLASS_H
class MainClass;
class OtherClass
{
public:
    OtherClass(MainClass *a);
private:
    int var2 = 50;
    MainClass *mainClass;
};
#endif // OTHERCLASS_H

OtherClass.cpp

#include "OtherClass.h"
#include "MainClass.h"
OtherClass::OtherClass(MainClass *mainClass)
{
    this->mainClass = mainClass;
    std::cout << this->mainClass->var1 - var2 << std::endl;
}
READ ALSO
Перевод const char* в const u_char*

Перевод const char* в const u_char*

Я работаю с двумя функциями из сторонних библиотекОдна возвращает const char*, а другая принимает const u_char*

216
Не могу понять ,как создать пустой список указателей на объект через std :: vector

Не могу понять ,как создать пустой список указателей на объект через std :: vector

Создать пустой список указателей на объекты класса Круг, используя коллекции языка С++ (например, std::vector<T>)

187
Как передать параметр в callback?

Как передать параметр в callback?

Есть функция внутри метода, находящая необходимую клетку на поле:

189
Webpack генерирует слишком большой файл

Webpack генерирует слишком большой файл

Знатоки webpack’a, я вот хочу подключать CSS в JS файле

273