溫馨提示×

C++中object初始化有哪些方式

c++
小樊
89
2024-07-17 20:06:51
欄目: 編程語言

在C++中,對象的初始化有以下幾種方式:

  1. 默認初始化:對象以默認值進行初始化,如果是內(nèi)置類型,則不進行初始化,如果是自定義類型,則調(diào)用構(gòu)造函數(shù)進行初始化。
int x; // 內(nèi)置類型,默認初始化
MyClass obj; // 自定義類型,默認初始化
  1. 直接初始化:使用構(gòu)造函數(shù)直接初始化對象。
MyClass obj(10); // 調(diào)用構(gòu)造函數(shù) MyClass(int) 初始化對象
  1. 拷貝初始化:使用等號或括號進行初始化,會調(diào)用相應(yīng)的構(gòu)造函數(shù)。
MyClass obj = anotherObj; // 拷貝構(gòu)造函數(shù)
MyClass obj(anotherObj); // 拷貝構(gòu)造函數(shù)
  1. 列表初始化(C++11新增):使用花括號進行初始化,可以避免窄化轉(zhuǎn)換。
MyClass obj{10}; // 調(diào)用構(gòu)造函數(shù) MyClass(int) 初始化對象
  1. 值初始化:對象以零值進行初始化。
int x{}; // 內(nèi)置類型值初始化為0
MyClass obj{}; // 自定義類型值初始化為默認值
  1. 聚合初始化:對于聚合類型(數(shù)組,結(jié)構(gòu)體等),可以使用花括號進行初始化。
struct MyStruct {
    int x;
    int y;
};

MyStruct s{1, 2}; // 聚合初始化

以上是C++中對象初始化的幾種方式,根據(jù)不同的場景選擇合適的初始化方式可以提高代碼的可讀性和效率。

0