[*] Я делаю игровой двигатель в C ++, используя модули из C ++ 20. < /li>
Используя основной пример, двигатель структурирован так:
Код: Выделить всё
class AКод: Выделить всё
A>B>C>D[*]
Вот минимальный воспроизводимый пример с тремя классами (A, B и C): < /p>
// main.cpp
#include
import A;
import B;
import C;
import C_Override;
int main() {
A a(3);
a.Create_B();
a.b->Create_C();
std::cout a = this;
}
};
< /code>
// B.cppm
module;
class A;
export module B;
import ;
import ;
import C;
export class B {
public:
std::vector c;
A* a;
template
void Create_C() {
c.push_back(std::make_unique());
c.back()->b = this;
c.back()->value = a->value;
}
};
< /code>
// C.cppm
module;
class B;
export module C;
export class C {
public:
B* b;
int value;
virtual void Do_Something() = 0; // This function will be overloaded
};
< /code>
export module C_Override
import ;
export class C_Override {
public:
void Do_Something() override {
std::cout
Подробнее здесь: https://stackoverflow.com/questions/797 ... 20-modules
Мобильная версия