2012-01-04 4 views
4

12.1/1. 생성자에는 이름이 없습니다. 함수 지정자의 선택적 시퀀스 (7.1.2)를 사용하는 특수 선언자 구문과 다음에 매개 변수 목록이있는 생성자의 클래스 이름을 사용하여 생성자를 선언하거나 정의합니다. 이러한 선언에서 생성자 클래스 이름 주위의 선택적 괄호는 무시됩니다.생성자 구문 주위의 괄호

텍스트를 읽으면 무시되는 다음 예제에서 생성자 이름 주위의 괄호는 무엇입니까?

class MyClass 
{ 
    MyClass(); 
}; 

MyClass::MyClass() { 
} 

답변

6

코드 스 니펫에 선택적 괄호가 없습니다. 다음은 생성자 클래스 이름 주위 옵션 괄호를 가지고 있으며, 이러한 괄호는 무시됩니다

class MyClass 
{ 
    (MyClass)(); 
}; 

MyClass::MyClass() { } 
+2

어떤 생각이 왜이 허용? 그건 그렇고, 우리는 할 수 없어'MyClass :((Class)() {}' –

+0

'(MyClass :: MyClass)()'가 작동하는지 궁금합니다. –

+2

@AaronMcDaid : 아마도 C 선언문 구문입니다. 'int i '대신'int (i);를 말할 수 있다는 것을 알고 계셨습니까? ;) – fredoverflow