// 1. C++11 就地初始化 // 所谓就地初始化,就是在变量定义时直接给其初始化。 // 以前我们可以通过:构造函数、成员初始化列表 // C++98的时候,静态的const变量使用的就是就地初始化 class Demo1 { public: const static int s_a = 100; }; // C++11 之后,对于非静态的 const 变量也支持就地初始化 // 一种使用 = 号,另外一种使用花括号{} class Other { public: Other() {} Other(int a, int b) { m1 = a; m2 = b; } int m1; int m2; }; class Demo2 { public: // 基本类型变量就地初始化 int m_a = 100; int m_b = { 200 }; int m_c{ 300 }; // int m_d(400); // 注意:不能使用圆括号进行就地初始化 // 自定义类型的变量就地初始化 Other m_d = {10, 20}; Other m_e{ 100, 200 }; }; void test01() { Demo2 demo; cout << demo.m_d.m1 << " " << demo.m_d.m2 << endl; } // 1.2 {} 的用途和使用场景 // 流程控制语句、函数用于标识作用域 // 用于初始化变量 void test02() { int a{}; int b{}; cout << a << " " << b << endl; } // 用于创建对象, 构建一个返回值类型的对象并返回 Other my_func() { return {}; // return Other() // return {10, 20}; // return Other(10, 20); } // 1.3 就地变量初始化、初始化列表、构造函数 // 就地初始化 -> 初始化列表 -> 构造函数 class Demo3 { public: Demo3() : m_a(200) { m_a = 300; } public: int m_a = 100; // 就地初始化 }; void test03() { Demo3 demo; cout << demo.m_a << endl; }
C++ 变量的初始化方法
未经允许不得转载:一亩三分地 » C++ 变量的初始化方法