C++에서 합성 패턴 및 상속과 함께 약간 연주했습니다. 그것은 뭔가 특별한 것이어서는 안된다. 나는 컴포넌트가 부모를 컴포지트로 가지고 있다는 것을 코딩했다. 컴포지트는 컴포넌트로부터 파생되고 그것의 기본 클래스 (Component)에서 생성자를 사용해야한다. 그러나 나는 다음과 같은 오류 있어요 : 조금으로 조사C++ 기본 생성자 lvalue to parameter
"Cannot convert lvalue of type 'Composite*' to parameter type 'Composite*'"
과 우변 등/lvalues입니다하지만 "매개 변수"유형에 대해 아무것도 찾지 못했습니다 것을 알게되었습니다. 매개 변수 유형이 rvalue입니까? lvalue를 매개 변수 유형으로 변환 할 수 있습니까? 수정 코드
class Component {
private:
Composite* parent;
public:
Component(Composite* parent) {
this->parent = parent;
}
};
class Composite : public Component {
public:
Composite(Composite* parent) : Component(parent) /* <-- Error */ { }
};
전달 선언을 수정하고 누락 된 세미콜론을 추가하면 표시된 코드가 그대로 잘 작성됩니다. 표시된 코드에 아무런 문제가 없습니다. 분명한 것은 실제 코드의 [mcve]에 문제를 제공하는 대신 환상적인 코드입니다. 실패. –
세미콜론을 수정하고 해당 코드를 시도했지만 오류가 계속 발생했습니다 – TreCore
원래 이해하지 못했던 "앞으로 선언을 수정하는"부분은 무엇입니까? –