파생 클래스 인스턴스를 새로 작성할 때 기본 클래스에 생성자 매개 변수를 제공하는 방법이 있습니까? (즉, 기본 클래스 생성자가 이러한 매개 변수에 대한 기본값을 갖는 경우)파생 클래스 인스턴스를 생성 할 때 기본 클래스 생성자 매개 변수 제공
예 :
class Base
{
public:
Base::Base(string name = "")
: m_name(name) {};
private
string m_name;
};
class Derived : public Base
{
public:
Derived::Derived() {};
};
은 그 때 나는 같은 것을 할 필요가 :
void main()
{
Base* instance = new Derived("Jeff");
};
이 분명히 작동하지 않습니다. 파생 된 인스턴스를 새로 작성하고 파생 클래스 생성자에서 해당 매개 변수를 제공 할 필요없이 기본 클래스에 생성자 매개 변수를 제공하는 방법이 있습니까?
파생 생성자에서 매개 변수를 제공하지 않아도되는 방법이 있었으면합니다. 이것이 유일한 방법입니까? –
@MarcusTomlinson : 꽤 많이. 분명히, 내가 제안한 것들의 변종들이 있지만, 그것들은 초기화 프로 시저에서'Base' 생성자를 명시 적으로 호출하는'Derived' 생성자를 포함합니다. 그러나 이것은 의미가 있습니다. 'Derived'가 'Base'에서 파생된다는 사실은 건설시 구현 세부 사항입니다. 그 사실은 본질적으로 캡슐화됩니다. –
젠장 ... 대답 쐈어! –