typedef의 템플릿화에 대해서

ssobranss의 이미지

template
typedef myvector vector;

이런 문법은 금지되어 있지요.

그래서 그 대안으로 제가 알기로 두가지 방법이 있는데 그 중에 하나가

template
class myvector:public vector{
};

이런식으로 public 상속을 받아버리는 건데요.

stl 컨테이너는 상속을 염두에 두고 만들어져 있지 않기 때문에 이렇게 하면 문제가 생길 수 있다고 하더군요.

그런데 도통 무슨 문제가 생길지 감이 안 옵니다. 제 생각엔 아무 문제 없을거 같은데요.

실제로 어떤 문제가 발생하나요?

chadr의 이미지

일반적으로 stl을 상속받으면 위험하다는 것은 stl의 소멸자가 가상으로 선언 되지 않았기 때문에
상속받은 클래스의 소멸자가 호출되지 않을 수 있다는 것으로 알고 있습니다.

위와같이 아무일도 안하는 경우에는 큰문제가 없을것 같습니다.

다른분들 의견은 어떠신가요?

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.