내가 일을하는 코드의 다음 비트를 만들기 위해 노력하고있어 ... 내가 할 수 있기를 원하는 것은 가상 함수 ... 왜이 비공개입니까?
#include <list>
template <typename T>
class container{
public:
virtual T func_x(){
T temp;
//do stuff with list<t> test
return temp;
}
private:
std::list<T> test;
};
template <typename T>
class container2 : public container<T>{
public:
virtual T func_x(){
T temp;
//do different stuff with list<T> test
return temp;
}
};
는
container<T> x;
container2<T> y;
를 선언 그리고 y는 액세스 할 수 있습니다 가질 수있다 func_x에 대해 다르게 동작한다는 점을 제외하면 x의 모든 공용 함수에 적용됩니다.
문제점은 지금 container2 클래스의 func_x가 사용할 수 없다는 것입니다.
std::list<T> test;
클래스 컨테이너를 완전히 공개하려고했습니다. 아직 주사위가 없습니다. 이 작업을 수행 할 수 있습니까?
감사합니다.
나는 당신의 후속 질문에 맞는 내 대답을 편집했습니다. 또한 앞으로는 원래 질문을 변경하지 말고 새로운 질문을하십시오. 질문과 답변을 읽는 다른 사람들에게 오해의 소지가있을 수 있습니다. –
이 해결되었습니다. 감사! –