C++成員初始化列表如何使用

c++
小樊
81
2024-11-09 03:29:31

在C++中,成員初始化列表是一種在構(gòu)造函數(shù)中初始化類(lèi)成員變量的方法

以下是使用成員初始化列表的一些示例:

  1. 初始化基本數(shù)據(jù)類(lèi)型成員變量:
class MyClass {
public:
    int x;
    double y;

    MyClass(int a, double b) : x(a), y(b) {
        // 構(gòu)造函數(shù)的主體可以為空
    }
};
  1. 初始化引用和指針成員變量:
class MyClass {
public:
    int& ref;
    int* ptr;

    MyClass(int a, int& b) : ref(a), ptr(&b) {
        // 構(gòu)造函數(shù)的主體可以為空
    }
};
  1. 初始化常量和引用成員變量:
class MyClass {
public:
    const int& constRef;
    const int* constPtr;

    MyClass(int a, const int& b) : constRef(b), constPtr(&b) {
        // 構(gòu)造函數(shù)的主體可以為空
    }
};
  1. 初始化類(lèi)類(lèi)型的成員變量:
class MyClass {
public:
    MyClass anotherClass;

    MyClass(int a, const MyClass& b) : anotherClass(b) {
        // 構(gòu)造函數(shù)的主體可以為空
    }
};
  1. 初始化多個(gè)成員變量:
class MyClass {
public:
    int x;
    double y;
    std::string z;

    MyClass(int a, double b, const std::string& c) : x(a), y(b), z(c) {
        // 構(gòu)造函數(shù)的主體可以為空
    }
};

使用成員初始化列表的優(yōu)點(diǎn)是它允許在構(gòu)造對(duì)象時(shí)直接初始化成員變量,而不需要在構(gòu)造函數(shù)體內(nèi)進(jìn)行賦值操作。這可以提高性能,特別是對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和引用類(lèi)型的成員變量。此外,成員初始化列表還可以用于初始化常量和引用類(lèi)型的成員變量,這是通過(guò)在初始化列表中直接傳遞它們的初始值來(lái)實(shí)現(xiàn)的。

0