vanila
19.Ноябрь.2023 19:24:29
1
У меня есть два класса ссылающихся друг на друга, соответственно в таком виде компилятор ругается.
А как правильно?
class A
{
public:
void func_A ()
{
b.func_B();
}
} a;
class B
{
public:
void func_B ()
{
}
} b;
b707
19.Ноябрь.2023 19:48:31
2
vanila:
А как правильно?
обьявление в .h файл, определение в .cpp
vanila
19.Ноябрь.2023 19:49:52
3
а в одном файле не получится?
b707
19.Ноябрь.2023 20:01:08
4
можно и в одном.
Разделите обьявление и определение методов.
class B;
class A
{
public:
A() {};
void func_A (B* b);
};
class B
{
public:
B() {}
void func_B (A* a);
} ;
void A::func_A (B* b)
{
b->func_B(this);
}
void B::func_B (A* a)
{
a->func_A(this);
}
A a;
B b;
b707
19.Ноябрь.2023 20:03:14
5
Вот это вот у вас сразу неправильно:
У вас определение метода класса A работает с конкретным экземпляром класса B ? - так не делается
b707
19.Ноябрь.2023 20:15:01
8
vanila:
Ну чаще всего да.
Все равно лучше написать в общем виде, а конкретный экземпляр передавать по указателю
vanila
19.Ноябрь.2023 20:19:43
9
как то вот ненужно было, пойду читать)