질문:
C 내에 있습니까? 멤버와 동일한 이름을 공유하는 생성자 인수를 사용하여 멤버 변수를 초기화하는 표준 변수?
예:
class Blah { std::vector<int> vec; public: Blah(std::vector<int> vec): vec(vec) {} };
답변:
예, 이는 합법적이며 다음에 따라 작동하도록 보장됩니다. C
설명:
C 표준의 섹션 12.6.2/7에는 "mem-initializer의 표현식 목록에 있는 이름은 mem-initializer가 지정된 생성자의 범위입니다." 즉, 생성자 인수와 멤버 변수는 별개의 개체이지만 동일한 이름을 사용합니다.
이를 통해 예제와 같이 생성자 인수의 값으로 멤버 변수를 초기화할 수 있습니다.
참고:
불필요한 객체 복사를 피하기 위해 생성자 인수에 const 참조를 사용하는 것이 좋습니다. 따라서 다음을 사용하는 것이 더 바람직합니다.
Blah(const std::vector<int> &vec): vec(vec) {}
위 내용은 동일한 이름을 가진 생성자 초기화: C 표준 준수?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!