반응형
생성자 상속이란 무엇입니까?
C ++ 11에서 생성자를 상속한다는 것은 무엇을 의미합니까? 그것이 내가 생각하는 것이라면 (기본 클래스 생성자가 파생 클래스의 범위로 가져옴) 내 코드에 미치는 영향은 무엇입니까? 이러한 기능의 응용 프로그램은 무엇입니까?
생성자 상속은 바로 그 의미입니다. 파생 클래스는 기본 클래스에서 생성자를 암시 적으로 상속 할 수 있습니다.
구문은 다음과 같습니다.
struct B
{
B(int); // normal constructor 1
B(string); // normal constructor 2
};
struct D : B
{
using B::B; // inherit constructors from B
};
이제 D에는 암시 적으로 정의 된 다음 생성자가 있습니다.
D::D(int); // inherited
D::D(string); // inherited
Ds 멤버는 이러한 상속 된 생성자에 의해 기본적으로 생성됩니다.
생성자가 다음과 같이 정의 된 것과 같습니다.
D::D(int x) : B(x) {}
D::D(string s) : B(s) {}
이 기능은 특별한 것이 아닙니다. 입력 상용구 코드를 저장하는 간단한 방법입니다.
자세한 내용은 다음과 같습니다.
12.9 생성자 상속
1) 생성자의 이름을 지정하는 using-declaration은 상속하는 생성자의 집합을 암시 적으로 선언합니다. using-declaration에서 명명 된 클래스 X에서 상속 된 생성자의 후보 집합은 다음과 같이 기본 매개 변수의 변환으로 인해 생성되는 실제 생성자와 개념적 생성자로 구성됩니다.
- X의 모든 비 템플릿 생성자
- 기본 인수가있는 매개 변수가 하나 이상있는 X의 각 비 템플릿 생성자에 대해 생략 기호 매개 변수 사양을 생략하고 매개 변수 유형 목록의 끝에서 기본 인수를 사용하여 매개 변수를 연속적으로 생략 한 생성자 세트, 과
- X의 모든 생성자 템플릿 및
- 기본 인수가있는 매개 변수가 하나 이상있는 X의 각 생성자 템플릿에 대해 생략 된 매개 변수 사양을 생략하고 매개 변수 유형 목록의 끝에서 기본 인수가있는 매개 변수를 연속적으로 생략하여 생성되는 생성자 템플릿 집합
참고 URL : https://stackoverflow.com/questions/9979194/what-is-constructor-inheritance
반응형
'Program Tip' 카테고리의 다른 글
RegEx에 넣기 전에 이스케이프해야하는 모든 문자 목록? (0) | 2020.11.18 |
---|---|
응용 프로그램 닫기 (0) | 2020.11.18 |
Pycharm에서 문자열의 맞춤법 검사를 피하는 방법 (0) | 2020.11.18 |
SQLite, Python, 유니 코드 및 비 UTF 데이터 (0) | 2020.11.18 |
C #에서 사용자 지정 예외를 구현하기위한 업계 표준 모범 사례는 무엇입니까? (0) | 2020.11.18 |