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

Тема в разделе "Общие вопросы по С и С++", создана пользователем WishMaster, 13 ноя 2006.

  1. WishMaster

    WishMaster Гость

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

    sdriver Гость

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

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

    ???? Гость

    Код (Text):
    #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;
    }
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Если я правильно понял вопрос, то так:

    Код (Text):
    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;
    };
     
Загрузка...
Похожие Темы - Специфический случай объявления
  1. beloff
    Ответов:
    17
    Просмотров:
    2.734
  2. Mark
    Ответов:
    0
    Просмотров:
    602
  3. anna
    Ответов:
    5
    Просмотров:
    610
  4. alyan
    Ответов:
    0
    Просмотров:
    1.149
  5. woow
    Ответов:
    1
    Просмотров:
    1.509

Поделиться этой страницей