Ошибка компилятора C3646 при сборке проекта c++

82
14 февраля 2021, 17:30

Есть два класса, имеющие экземпляры друг друга:

Файл A.h

#pragma once
#include "B.h"
class A
{
public:
    B b;
    A();
   ~A();
};

Файл B.h

#pragma once
#include "A.h"
class B
{
public:
    A a;
    B();
   ~B();
};

Файл A.cpp

#include "A.h"
A::A()
{
}
A::~A()
{
}

Файл B.cpp

#include "B.h"
B::B()
{
}

B::~B()
{
}

Answer 1

Определение класса с содержимым ещё не определённого класса - не позволено. В вашем случае вообще вы предлагаете класс объектов бесконечного размера.

Данный вопрос обычно решается указателями на другой класс.

class A ;
class B {
 A * a ;
};
//--
class B ;
class A {
B * b ;
};
READ ALSO
Что за оператор такой “” (двойные кавычки)?

Что за оператор такой “” (двойные кавычки)?

В общем вопрос в заголовке, что за перегружаемый(если уместно применить к этому слово перегружаемый) оператор "" и зачем он используется?

99
html, что это значит? и как её заменить?

html, что это значит? и как её заменить?

Есть вот такая запись которая применяется ко всей странице,что тут означает запятая?

84
Позиционирование слоёв в CSS

Позиционирование слоёв в CSS

Прошу помочь, не могу разобраться с позиционированием слоев

99
Проблема при создании футера сайта HTML CSS

Проблема при создании футера сайта HTML CSS

Вроде правильно пишу код, по гайду, а футер выглядит не так как надоИ еще не могу номер телефона по центру сделать (на номер внимания не обращайте,...

95