C++ 11에서는 생성자를 상속하여 래스터 클래스와 같은 것으로 많은 상투적 인 표현을 피할 수 있습니다. 그러나 variadic 템플릿만으로이 기능을 이미 구현할 수있는 것처럼 보입니다.생성자 상속 vs 전달
class B
{
public:
B(int){//do something}
B(int, char){//do something}
};
사용 상속 생성자 :
class D : public B
{
public:
using B::B;
};
앞으로 가변 인자 템플릿과 사용 : 일관성 (치료 생성자 및 방법 using
에 대해 동일한 방법) 및 사용의 용이성이 매우하지만
class D : public B
{
public:
template <typename...Args>
D(Args&&... args) : B(std::forward<Args>(args)...)
{
}
};
을 상속 된 생성자를 가져 오는 좋은 이유는 왜 첫 번째 솔루션을 두 번째 솔루션보다 우선 사용해야하는 다른 이유가 있을까요? 모두 CWG 문서 (N1890 및 N1898는) 내가 상속 생성자는 단순히 다음 사항에 유의하고 이동 논의 발견
역사적 사고보다는 더 많은 일반 회원의 생성자뿐만 아니라 으로 작동하려면이 옵션을 사용 방지 리틀 기능. 생성자가 해당 클래스의 이름으로 참조되기보다는 "ctor"또는 "생성자" 이라면 이는 효과가있었습니다. 우리는 생성자를 상속하는 메커니즘으로 이것을 제안합니다.
가능한 중복 (곱하지 않습니다 사용하는 동안) 또한
는 각 템플릿 인스턴스는 다른 생성자이다 방법 유용한 상속 컨스트럭터는 C++에 있을까요?] (http : // stackoverflow. – Pradhan