클래스에 여러 기본 생성자 함수를 포함 할 수 있습니까? 나는 무엇이든이 "디폴트"의 정의에 의해서만 하나의 디폴트 함수를 가질 수 있다고 생각하기 때문에 궁금합니다. 그러나 나는 너무 확신하지 못합니다.C++ 및 생성자 함수의 클래스
답변
클래스에는 여러 기본 생성자가있을 수 있습니다.
class C2
{
public:
C2() {}
C2() {} // error: C2::C2() already defined
};
: 동일한 서명이 생성자를 가질 수 없다 그러나
class C
{
public:
C(); // a default constructor
C(int = 0); // another default constructor
};
C c1; // error: ambiguity; both C::C() or C::C(int) with the default argument 0 match
C c2(0); // OK, no ambiguity
참고 : 그렇게하려고 할 때, 당신은 모호함으로 실행하는 것 때문에이 경우에, 당신은 할 수없는 그것을 기본-구성
제 컴파일러 (GCC 4.8.1)에서 'std :: is_default_constructible'가 false 인 경우입니다. [문서] (http://en.cppreference.com/w/cpp/types/is_default_constructible)에 따르면 특성은 "클래스에 액세스 가능한 기본 생성자가 있는지 여부"를 확인합니다. 컴파일러 나 해당 웹 사이트가 잘못되었거나 UB입니다. –
@KerrekSB, 그것은'std :: is_constructible
@Kerrek : 웹 사이트가 잘못되었습니다 (평소와 같이). –
- 1. C++ : 클래스 및 생성자 사용
- 2. C++ 클래스 및 생성자 이해
- 3. C++ OOP 클래스 및 생성자
- 4. C++ 오류, 클래스 및 생성자
- 5. 클래스 생성자 및 배열
- 6. 델파이 생성자 및 클래스 생성자
- 7. C++ 상속 클래스 생성자
- 8. 의 C# 클래스 생성자
- 9. C# 추상 클래스 생성자
- 10. C++ 클래스 복사 생성자
- 11. Objective-C 클래스 생성자
- 12. C++ 클래스 생성자 혼동
- 13. C++ 템플릿 클래스 생성자
- 14. 클래스 생성자 및 요소
- 15. 추상 클래스 및 생성자
- 16. 클래스 상속 및 생성자
- 17. 클래스 템플릿 및 생성자
- 18. Java 클래스 및 생성자
- 19. 기본 클래스의 생성자 클래스 'C++의 생성자
- 20. C++ 생성자 및 동시성
- 21. C# 클래스 생성자 기본값 질문
- 22. 정적 클래스 C# 생성자 OOP
- 23. 생성자 함수의 축약어
- 24. C++로 생성자 생성자
- 25. C++ 호출 기본 클래스 생성자
- 26. C++ 클래스 생성자 정의 안에?
- 27. C++ 클래스 위임 생성자 문제
- 28. 함수와 생성자 함수의 차이점
- 29. C++ 11/생성자 생성자
- 30. Threadsafe 정적 클래스 및 생성자
기본 생성자가 여러 개인 경우 선택하겠습니까? – chris
기본 생성자는 매개 변수를 허용하지 않는 생성자를 의미합니까? 그렇다면 컴파일러가 어떤 것을 의미 하는지를 어떻게 알 수 있을까요? –
@ T.Kiley, 정의에 따르면, 그것은 인수없이 호출 될 수 있습니다. 여전히 기본 인수가 허용된다는 의미입니다. – chris