> 백엔드 개발 > C++ > C 생성자에서 콜론 연산자(':')의 목적은 무엇이며 명시적인 멤버 변수 할당과 어떻게 다릅니까?

C 생성자에서 콜론 연산자(':')의 목적은 무엇이며 명시적인 멤버 변수 할당과 어떻게 다릅니까?

Susan Sarandon
풀어 주다: 2024-11-13 06:50:03
원래의
337명이 탐색했습니다.

What is the purpose of the colon operator (

C 생성자의 초기화 목록

제공된 C 코드에 사용된 콜론 연산자(":")는 멤버 초기화 목록의 일부입니다. , 생성자 내에서 클래스 멤버 변수를 초기화하는 방법입니다. 질문의 제안과는 달리 이는 명시적인 개별 할당과 동일하지 않습니다.

이 예에서:

class MyClass {
public:

    MyClass() : m_classID(-1), m_userdata(0) { 
    }

    int m_classID;
    void *m_userdata;
};
로그인 후 복사

생성자 MyClass()는 두 개의 멤버 변수를 초기화하는 기본 생성자입니다. , m_classID 및 m_userdata를 각각 -1 및 0 값으로 설정합니다. 이는 생성자의 매개변수 목록 다음에 생성자 본문 앞에 오는 멤버 이니셜라이저 목록을 사용하여 수행됩니다.

멤버 이니셜라이저 목록은 클래스에서 선언된 순서대로 클래스 멤버 변수를 초기화합니다. 각 초기화는 쉼표로 구분됩니다. 초기화 목록에 지정된 값은 생성자가 호출될 때 해당 멤버 변수에 즉시 할당됩니다.

반대로, 질문에서 제안한 대로 생성자 본문 내에서 개별 할당을 수행하면 다음이 명시적으로 변경됩니다. 이미 초기화된 값입니다. 이는 멤버 이니셜라이저 목록에 의해 수행되는 초기화와 다릅니다.

따라서 멤버 이니셜라이저 목록은 생성자 내에서 클래스 멤버 변수를 초기화하는 편리한 방법을 제공하며 명시적인 개별 할당과 다릅니다.

위 내용은 C 생성자에서 콜론 연산자(':')의 목적은 무엇이며 명시적인 멤버 변수 할당과 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿