// 使用列表初始化
int arr[] = {1, 2, 3, 4, 5};
// 避免使用賦值操作符
int a = 10;
int b = 20;
int c = 30;
// 更高效的方式
int a{10};
int b{20};
int c{30};
// 構造函數的默認參數
class MyClass {
public:
MyClass(int x = 0, int y = 0) : m_x(x), m_y(y) {}
private:
int m_x;
int m_y;
};
// 初始化對象時使用默認參數
MyClass obj1; // 默認初始化為0, 0
MyClass obj2(1); // 初始化為1, 0
MyClass obj3(1, 2); // 初始化為1, 2
class MyClass {
public:
MyClass(int x, int y) : m_x(x), m_y(y) {}
private:
int m_x;
int m_y;
};
// 使用成員初始化列表
MyClass obj(10, 20);
class MyClass {
public:
MyClass(int x) : m_x(x), m_y(0) {}
private:
const int m_x;
int m_y;
};
// 初始化const成員變量
MyClass obj(10);
class MyClass {
public:
MyClass(int& x) : m_x(x) {}
private:
int& m_x;
};
int val = 10;
MyClass obj(val); // 初始化引用類型成員變量