C++ 的大括号的用法合集

C++ 的大括号的用法合集

学习C++以来还没有总结过C++的大括号的使用方式,于是有此文记录一下。

方法一:定义代码块

最常用的方式之一,不做解释:

cpp 复制代码
if (condition) {
    // 代码块
} else {
    // 另一个代码块
}

方式二:作用域控制

像下面的这样的代码就不能够执行,因为a这个变量作用域不足以让 cout 访问。

cpp 复制代码
	{
		int a = 10;
	}
	cout << a << endl;
	return 0;

方式三:类与结构体的定义

这个方式也很常见,不多做解释。

cpp 复制代码
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 引入了大括号初始化(也称为统一初始化),可以用来初始化变量、数组、容器等。

简单变量初始化

cpp 复制代码
	int x{10};
	double y{3.14};

数组初始化

cpp 复制代码
	int arr[3] = {1, 2, 3};

容器初始化

cpp 复制代码
    std::vector<int> vec = {1, 2, 3, 4};

统一初始化方式可以避免窄化转换问题,提高代码的安全性。

值得一提的是,著名的宇宙构造表达式也是这样原理。

方式五:构造函数委托

cpp 复制代码
class Example {
    int a;
public:
    Example(int x) : a{x} {}
};

方式六:内联对象定义

cpp 复制代码
struct Point {
    int x, y;
};
Point p = {10, 20}; // 使用大括号直接初始化

对于匿名对象或临时对象,这种写法简洁明了。

方式七:lambda 表达式的函数体

cpp 复制代码
auto lambda = []() {
    return 42;
};

方式八:内联命名空间

大括号用于定义命名空间的范围。

cpp 复制代码
namespace MyNamespace {
inline namespace v1 {
    void func() {}
}
}

目前就这些,如有新的心得则继续补充。

相关推荐
qq_1998868727 分钟前
第6板块·第4节:构建系统与多文件项目
c++·人工智能·gpu算力
2601_9669496537 分钟前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_734571761 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
汉克老师2 小时前
GESP2026年9月认证C++三级( 第三部分编程题(2、分割字符串))精讲
c++·gesp·小学生·学c++编程
估值探索者2 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
RAN11426760082 小时前
1.3第一个程序的介绍
开发语言·qt
天若有情6732 小时前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++
qq_199886873 小时前
第7板块·第3节:CUTLASS 的 GEMM 实现与优化策略
c++·人工智能·gpu算力·cuda
hetao17338373 小时前
2026-09-17 hetao1733837 的刷题记录
c++·算法
blue_ice .3 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发