제 질문은 실제로이 모든 것을 말하고 있지만 단지 문제를 반복 할 것입니다.C++ 클래스 C에서 클래스 A의 보호 된 변수에 액세스합니다. 여기서 C는 A의 하위 클래스 인 B의 하위 클래스입니다.
클래스 A에는 액세스하려는 보호 된 변수 (벡터)가 있습니다.
클래스 B는 클래스 A의 하위 클래스이며 생성자에서이 벡터에 액세스하여 원하는대로 추가 할 수 있습니다.
그러나 클래스 C (클래스 A의 하위 클래스)에서이 벡터에 생성자를 추가하고 싶지만 컴파일러에서 알려줍니다.
클래스 A :
class ClassA
{
protected:
std::vector<Object *> myVector;
};
클래스 B :
이class ClassB : ClassA, AnotherClass
{
public:
ClassB()
{
this->myVector.push_back(new Object);
}
}
클래스 C는 : 여기
내 코드 어떤 경우 가class ClassC : public ClassB
{
public :
ClassC()
{
this->myVector.pushBack(new Object);
}
}
사람이 말해 줄 수 있습니까 제약 때문에 제약이 불가능하다. C++ 또는 내 코드 때문에?
언제나 감사드립니다.
'ClassB'에서이 벡터에 어떻게 추가 할 수 있을지 제안 할 수 있습니까? –
@AdamCarter 정말로 당신이하려는 일에 달려 있습니다. 공개적으로 상속합니까? 'ClassC'가 벡터를 수정할 수있게 해주는'ClassB'에 멤버 함수를 추가 하시겠습니까? – juanchopanza
"C++의 제약이나 코드 때문에 내가 할 수있는 일이 불가능하면 누구나 말해 줄 수 있니?" "어쨌든 고마워. :) –