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() {}
}
}

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

相关推荐
529宝宝起名网9 小时前
用 Python 开发历史名字查询与起名灵感工具:从古籍人物数据库到名字文化故事生成
开发语言·前端·python
余额瞒着我当琳9 小时前
C++多态深入解析:多态概念,多态实现条件,虚函数表与内存分布,常见问题及注意事项
c++·算法
ocean21039 小时前
2025-2026年C++专题大厂面试高频问题
开发语言·c++·面试
白远山9 小时前
健身场馆无人自动化系统实战指南:从架构设计到部署全流程解析
java·开发语言·架构·需求分析
程序猿编码9 小时前
扔掉 Python!纯 C++ 本地跑扩散 TTS,GGML 加持,支持 RK3588 NPU 加速
c++·计算机视觉·大模型·transformer·rk3588·推理·ggml
郝学胜-神的一滴10 小时前
C++20模板元编程 02:吃透模板基础核心四大核心知识点
开发语言·数据结构·c++·程序人生·软件工程·visual studio
troy12810 小时前
Visual Studio Code 详细教程:从入门到高效开发
开发语言·python
泡海椒10 小时前
jquick-pdf 超详细入门教程:Java 轻量级 HTML 模板生成 PDF 工具
java·开发语言
八年。。10 小时前
WSL学习(三)——搭建Linux + C++ + SOME/IP 基础开发环境
开发语言·笔记·ubuntu
代码王同学10 小时前
2026.9.15日C++类和对象学习收获笔记
c语言·c++