순환 포함 문제는C++ 오류 : 'struct ...'의 전달 선언?
나는 앞으로 자신의 순환 포함을 해결하기위한 시도로 상대방의 헤더에있는 클래스 중 하나 선언합니다. 여기 내 두 개의 파일은 다음과 같습니다
가첫 번째 파일 (Parameter.h가) :
이#pragma once
#include "Token.h"`
class Expression;
class Parameter {
public:
Parameter() {
string = new Token();
identifier = new Token();
expr = new Expression();
}
Token* string;
Token* identifier;
Expression* expr;
};
두 번째 파일 (Expression.h가) :
#pragma once
#include "Token.h"
#include "Parameter.h"
class Expression {
public:
Expression() {
param1 = new Parameter();
param2 = new Parameter();
op = new Token();
}
Expression(Parameter* p1, Token* o, Parameter* p2) {
param1 = p1;
param2 = p2;
op = o;
}
Parameter* param1;
Parameter* param2;
Token* op;
};
것은 당신이 볼 수 있듯이 , 나는 앞으로 Expression.h Parameter.h 선언하지만 다음과 같은 두 가지 오류가 계속 발생합니다 :
forward declaration of 'struct Expression'
invalid use of incomplete type 'struct Expression'
몇 가지 이전에 게시 된 질문을 보았지만 여전히이 문제를 해결할 수 없습니다. 감사. 이에 대한 전체 선언을 필요로하기 때문에
그것은 일 (새 경우 지금 당신은/생성자는 던져 안전하다)! 감사. – amorimluc