>백엔드 개발 >C++ >C 생성자에서 멤버 초기화 목록은 어떻게 작동합니까?

C 생성자에서 멤버 초기화 목록은 어떻게 작동합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-16 06:35:14570검색

How Do Member Initialization Lists Work in C   Constructors?

생성자의 멤버 초기화 목록

C에서 생성자 뒤의 콜론과 표현식은 멤버 초기화 목록의 일부입니다. 이는 두 가지 주요 목적으로 사용됩니다:

1. 기본 클래스 생성자 호출

파생 클래스에서 멤버 초기화 목록을 사용하여 기본 클래스의 생성자를 호출하기 위한 인수를 지정할 수 있습니다. 예를 들어, 다음 코드에서는

class demo
{
public:
    demo(unsigned char le = 5, unsigned char default) : len(le)
    {
        // Body of the constructor
    }
};

class newdemo : public demo
{
public:
    newdemo() : demo(0, 0)
    {
        // Body of derived class constructor
    }
};

newdemo 생성자의 : deco(0, 0) 구문이 인수 0과 0을 사용하여 데모 기본 클래스의 생성자를 호출합니다.

2. 데이터 멤버 초기화

생성자 본문을 실행하기 전에 멤버 초기화 목록을 사용하여 클래스의 데이터 멤버를 초기화할 수 있습니다. 이는 생성자 본문에 할당할 수 없는 const 멤버에 특히 유용합니다. 예:

class Demo
{
public:
    Demo(int& val) : m_val(val)
    {
        // Body of constructor
    }

private:
    const int& m_val;
};

이 예에서 : m_val(val) 구문은 생성자 인수 val의 값으로 m_val const 참조 데이터 멤버를 초기화합니다.

위 내용은 C 생성자에서 멤버 초기화 목록은 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.