1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

  1. WishMaster

    WishMaster Гость

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

    sdriver Гость

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

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

    ???? Гость

    Репутация:
    0
    Код:
    #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

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

    Код:
    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;
    };
     
Загрузка...

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