C++初始化列表的优化技巧
导读:使用列表初始化来初始化对象,避免使用赋值操作符,可以提高代码效率和可读性。  // 使用列表初始化 int arr[] = {1, 2, 3, 4, 5};  // 避免使用赋值操作符 int a = 10; int b = 20; int...
- 使用列表初始化来初始化对象,避免使用赋值操作符,可以提高代码效率和可读性。
// 使用列表初始化
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);
- 使用初始化列表初始化类的const成员变量,因为const成员变量只能在初始化时赋值。
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);
     // 初始化引用类型成员变量
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++初始化列表的优化技巧
本文地址: https://pptw.com/jishu/695771.html
