> 백엔드 개발 > C++ > 멤버 초기화 및 기본 클래스 호출을 위해 C 생성자에서 콜론(:) 구문이 어떻게 작동합니까?

멤버 초기화 및 기본 클래스 호출을 위해 C 생성자에서 콜론(:) 구문이 어떻게 작동합니까?

DDD
풀어 주다: 2024-12-02 05:22:14
원래의
179명이 탐색했습니다.

How Does the Colon (:) Syntax Work in C   Constructors for Member Initialization and Base Class Calls?

생성자의 콜론 구문 이해

C에서 생성자는 객체 생성 시 초기화하는 함수입니다. 생성자 이름은 일반적으로 클래스 이름과 일치하지만 고유한 초기화 구문을 가질 수 있습니다. 생성자 구문의 주목할만한 측면 중 하나는 콜론(:) 뒤에 인수 목록을 사용한다는 것입니다.

멤버 이니셜라이저 목록으로 알려진 이 구문은 두 가지 주요 용도로 사용됩니다.

  • 기본 클래스 생성자 호출:
    파생 클래스가 생성되면 해당 기본 클래스도 초기화되어야 합니다. 멤버 이니셜라이저 목록을 사용하면 필요에 따라 인수를 전달하여 기본 클래스의 생성자를 호출할 수 있습니다.
  • 데이터 멤버 초기화:
    멤버 이니셜라이저 목록을 사용하여 비클래스를 초기화할 수도 있습니다. - 클래스의 정적 데이터 멤버. 이는 데이터 멤버 이름, 할당 연산자 및 인수를 지정하여 수행됩니다.

예를 들어 다음 코드를 고려하세요.

class demo 
{
private:
    unsigned char len, *dat;

public:
    demo(unsigned char le = 5, unsigned char default) : len(le) 
    { 
        dat = new char[len];                                      
        for (int i = 0; i <= le; i++)                             
            dat[i] = default;
    }

    void ~demo(void) 
    {                                            
        delete [] *dat;                                           
    }
};
로그인 후 복사

이 예에서 생성자에는 le와 default라는 두 개의 매개변수가 있습니다. 멤버 초기화 목록: len(le)은 le 값을 len 데이터 멤버에 할당합니다.

또한 파생 클래스 newdemo에서:

class newdemo : public demo 
{
private:
    int *dat1;

public:
    newdemo(void) : demo(0, 0)
    {
     *dat1 = 0;                                                   
     return 0;                                                    
    }
};
로그인 후 복사

멤버 초기화 목록: 데모( 0, 0)은 인수 0과 0을 사용하여 기본 클래스 생성자 데모를 호출하여 기본의 len 및 기본 데이터 멤버를 초기화합니다. class.

멤버 초기화 목록은 데이터 멤버를 초기화하고 기본 클래스 생성자를 호출하는 편리하고 효율적인 방법으로 코드의 안전성과 명확성을 향상시킵니다.

위 내용은 멤버 초기화 및 기본 클래스 호출을 위해 C 생성자에서 콜론(:) 구문이 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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