/* 다음 프로그램은 아무 것도 발견되지 않아도 불가사의하게 재귀를 입력하는 것처럼 보입니다. 컴파일러 : g ++ (우분투 4.4.3-4ubuntu5.1) 4.4.3 컴퓨터 : 86 OS : 우분투 10.04 64 비트기본 생성자 재귀 충돌
*/
#include<iostream>
using namespace std;
class Test
{
public:
Test():x(9)
{
cout << " Test::Test\n";
Test (x);
}
Test (int a)
{
cout << " Test::para\n";
}
private:
int x;
};
int main(void)
{
Test a;
return 0;
}
그 이유는 무엇입니까?
만약 x를 하드 코딩 된 값으로 변경하면 Int, 그 잘 작동합니다. 그렇지 않으면 기본 생성자를 다시 호출합니다 n – PeerPandit
왜 기본 생성자에서 매개 변수화 된 생성자를 호출합니까? x는 이미 거기에있는 멤버 초기화자를 사용하여 초기화되었습니다. BTW에서는'Test (int a = 9)'를 정의하고 기본 생성자를 전혀 생략 할 수 있습니다. –
소리가 컴파일러 버그와 같습니다. –