Специфический случай объявления классов

  • Автор темы WishMaster
  • Дата начала
W

WishMaster

#1
Есть два класса - А и Б. Каждому экземпляру класса А отвечает конкретный экземпляр класса Б и наоборот. Для обеспечения такого однозначного соответствия между классами удобно было бы включить в качестве элемента класса А ссылку на экземпляр класса Б и наоборот. Вопрос в том, как это правильно объявить? Поскольку если сначала объявлять класс А, например, то компилятор не узнает ссылку на класс Б, которая является его элементом. Как быть?
Заранее благодарен за советы.
 
S

sdriver

#2
Каждому экземпляру класса А отвечает конкретный экземпляр класса Б и наоборот.

Не совсем понятно что такое отвечает; А наследует B, а В наследует А?:unsure:
 
?

????

#3
Код:
#include <iostream>

class b;

class a
{
int Test;

b* pb;
};

class b
{
int Tets;

a* pa;
};


int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
 
04.09.2006
2 566
3
#4
Если я правильно понял вопрос, то так:

Код:
class B;
class A
{
public:
A( B* pB ) : m_pB( pB ) {}
private:
B* m_pB;
};

class B
{
public:
B( A* pA ) : m_pA( pA ) {}
private:
A* m_pA;
};