이것은 이상하게 보일지 모르지만, 클래스 B의 변수가 필요하고 클래스 B가 클래스 A의 포인터를 필요로하므로 내 프로그램에서 문제가 발생하여 어느 클래스가 어떤 것에 첨부되어 있는지 ...클래스 B의 클래스 A의 변수와 클래스 A의 클래스 B의 포인터는?
클래스 A에서 클래스 B가 아직 정의되지 않았으며 클래스 B에서 클래스 A가 아직 정의되지 않았기 때문에 오류가 발생합니다 ...
별도의 클래스를 포함하는 내 헤더 파일은 서로를 포함하며 앞으로 클래스를 선언하려고했습니다. 예를 들어 클래스 A; 클래스 B; 하지만 난 같은 컴파일러 오류가 발생합니다 :
error C2079: 'CFrame::menu' uses undefined class 'CMenu'
나중에 다른 클래스에 전달하고 싶기 때문에 클래스 B의 클래스 A에 대한 포인터가 필요합니다.
class A; // declaration of A
class B // definition of B
{
A* foo;
// ...
};
class A // definition of A
{
B bar;
// ...
};
선언의 이런 종류의
자주 앞으로 선언라고 : 당신이B
을 정의하기 전에
표현하기 어려운 것은 일반적으로 이해하기가 더 어렵습니다. 네, 앞으로 선언이 무엇인지 알았으니, 그리 어렵지는 않습니다.하지만 8 분 전에는 그때 당신에게 "불가능"했습니다. – msw