C 11에서는 클래스 정의 내에서 멤버 변수를 직접 초기화할 수 있는 클래스 내 초기화를 도입합니다. 그러나 이러한 초기화 프로그램은 특정 구문 규칙을 준수해야 합니다.
질문:
클래스 내 초기화 프로그램에서 등호(=) 또는 곱슬 기호를 사용해야 하는 이유는 무엇입니까? 바지 멜빵 ({})?
답변:
이 요구 사항은 잠재적인 구문 모호성을 제거하는 데 도움이 됩니다.
다음 예를 고려하십시오.
class BadTimes { struct Overloaded; int Overloaded; // Legal, but unusual. int confusing(Overloaded); // <-- Ambiguous line };
문제의 대사는 두 가지로 해석할 수 있습니다. 방법:
이러한 모호함은 메소드 선언과 객체를 모두 나타낼 수 있는 괄호 사용으로 인해 발생합니다.
이러한 혼란을 해결하기 위해 C 11에서는 클래스 내 초기화에 중괄호를 사용해야 합니다. 이는 혼동이 멤버 변수임을 명시적으로 나타냅니다.
class BadTimes { struct Overloaded; int Overloaded; // Legal, but unusual. int confusing{Overloaded}; // <-- Clear initialization };
따라서 클래스 내 초기화는 구문 오해를 방지하고 코드 가독성을 보장하기 위해 등호 또는 중괄호를 사용해야 합니다.
위 내용은 C 클래스 내 초기화 프로그램이 `=` 또는 `{}`를 사용해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!