C++은 b1
위해 보여주는 아래의 예로서, 초기리스트를 통해 대중 구성원의 값을 설정하는 클래스의 인스턴스를 허용한다 :C++ : 초기화리스트 작성은 어떻게 이루어 집니까?
class B {
public:
int i;
std::string str;
};
B b1{ 42,"foo" };
B b2();
; 그러나, 생성자를 제공하면
B(int k) { }
이 컴파일되지 않습니다.
그럼, 두건의 뒤에서 무슨 일이 일어나고있는거야? 생성자가 없으면 컴파일러에서 제공합니까? 하지만 어떻게 초기화 목록을 제공 할 수 있습니까? 예를 들어 b2
에 대해 보여 주듯이 입력이없는 "빈"생성자 만 제공 할 것이라고 생각했습니다. 아니면 둘 다 제공합니까?