현재 G ++ 및 VC++ 2010 모두 상속되는 생성자를 지원하지 않습니다.상속하는 생성자가 기존의 모든 C++ 컴파일러에서 지원되지 않는 이유는 무엇입니까?
그러나 이것은 C++ 0x에서 가장 아름다운 기능 중 하나라고 생각합니다. 그리고 저는 컴파일러에 의해 구현하는 것이 다소 쉬워야한다고 생각합니다.
컴파일러가이 기능에 관심이없는 이유는 무엇입니까?
내가이 같은 표준 : : 문자열을 상속하여 내 자신의 문자열 클래스를 설계 할 가정 :class MyString : public std::string
{
public:
// I have to redefine many overloaded ctors here and forward their arguments to
// std::string's ctors. How tedious it will be!!!
};
아름다운 코드 예제 :
struct B1
{
B1(char);
};
struct B2
{
B2(double);
B2(int);
};
struct D1 : B1, B2
{
using B1::B1; // D1(char)
using B2::B2; // D1(double), D1(int)
};
D1 d('c'); //OK, invokes D1(char)
"아름다운 코드 예제"의 문제점 : D1의 B2 부분이 어떻게 초기화됩니까? – UncleBens
@UncleBens, 나는 이것이 기본 초기화되거나 초기화되지 않아야한다고 생각합니다. – xmllmx
'std :: string'은 (또는 다른 STL 컨테이너에서 파생 된 것이 아닙니다.) – fredoverflow