学习c++以来还没有总结过c++的大括号的使用方式,于是有此文记录一下。
方法一:定义代码块
最常用的方式之一,不做解释:
if (condition) { // 代码块 } else { // 另一个代码块 }
方式二:作用域控制
像下面的这样的代码就不能够执行,因为a这个变量作用域不足以让 cout 访问。
{ int a = 10; } cout << a << endl; return 0;
方式三:类与结构体的定义
这个方式也很常见,不多做解释。
struct point { int x; int y; }; class rectangle { int width, height; public: rectangle(int w, int h) : width(w), height(h) {} int area() { return width * height; } };
方式四:初始化列表
在 c++11 引入了大括号初始化(也称为统一初始化),可以用来初始化变量、数组、容器等。
简单变量初始化
int x{10}; double y{3.14};
数组初始化
int arr[3] = {1, 2, 3};
容器初始化
std::vector<int> vec = {1, 2, 3, 4};
统一初始化方式可以避免窄化转换问题,提高代码的安全性。
值得一提的是,著名的宇宙构造表达式也是这样原理。
方式五:构造函数委托
class example { int a; public: example(int x) : a{x} {} };
方式六:内联对象定义
struct point { int x, y; }; point p = {10, 20}; // 使用大括号直接初始化
对于匿名对象或临时对象,这种写法简洁明了。
方式七:lambda 表达式的函数体
auto lambda = []() { return 42; };
方式八:内联命名空间
大括号用于定义命名空间的范围。
namespace mynamespace { inline namespace v1 { void func() {} } }
目前就这些,如有新的心得则继续补充。
到此这篇关于c++中大括号的用法合集的文章就介绍到这了,更多相关c++大括号内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论