2016-07-05 3 views
-5

파생 클래스의 생성자에서 기본 클래스의 생성자를 호출하는 방법을 배우는 것이 중요합니까?파생 클래스 생성자에서 기본 클래스 생성자로 인수 전달 사용

내 말은, 그 일을 실제로 적용 할 수 있습니까? 그렇다면 누군가가 내게 모범을 보이고 그것을 적용 할 때와 그렇지 않을 때를 설명 할 수 있습니까?

방금 ​​배웠으며 실제로 응용 프로그램에서 사용되는지는 알 수 없습니다.

class base { 
    int a; 
    int b; 
public: 
    base(int i, int j) { 
     a=i; 
     b=j; 
    }  
}; 

class derived : public base { 
public: 
    derived(int p, float q) : base(p, q) //passing parameters to base class 
    { } 
    }; 
+5

인수 전달의 기본 사항을 배우는 것은 너무 쉽기 때문에 시작하기 만하면됩니다. 당신이 그것을 알기도 전에 그것을 배웠습니다. 자신에게이 사실을 가르치기 시작하면 실용적인 최소한의 유틸리티 만 있으면됩니다. –

+0

시간의 75-90 %에 대해 자손 클래스가 있습니다. 기본 생성자를 호출합니다. 예, 중요합니다. :) – lorro

+2

'base'에는 기본 생성자가 없으므로 명시 적 매개 변수로'base' 생성자를 호출하려면'derived'가 필요합니다. 당신은 당신 자신의 질문에 대답했습니다. – Kevin

답변

0

, 그 일의 실용적인 응용 프로그램은 내가 의미가있다 : 여기

은 예입니다?

예. 유스 케이스의 수가 너무 많아 여기에 나열 할 수 없습니다.

그렇다면 누군가가 예제를 제공하고 적용시기와 적용시기를 설명 할 수 있습니까?

다음은 몇 가지 적용 예입니다.

예 1 :

struct Rectangle 
{ 
    Rectangle(int w, int h) : width(w), height(h) {} 
    int width; 
    int height; 
}; 

struct Square : Rectangle 
{ 
    Square(int size) : Rectangle(size, size) {} 
}; 

예 2 :

struct Employee 
{ 
    Employee(std::string const& name, int id) : name(name), id(id) {} 
    std::string name; 
    int id; 
}; 

struct Manager : struct Employee 
{ 
    Manager(std::string const& name, int id) : Emplyee(name, id) {} 
    void addEmployee(int id) 
    { 
     managedEmployeeIDs.insert(id); 
    } 

    std::set<int> managedEmployeeIDs; 
}; 

그것이 부적절 할 수 있도록 많은 방법이 있기 때문에 적합하지 않은 경우 제안하기는 어렵습니다. 예를 들어 적절한시기를 쉽게 알 수 있습니다.

+0

thnxxx 많은 친구 ... 나는 그것을 얻었다 :) – Ayush

관련 문제