当前位置: 首页 > article >正文

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

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

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

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


http://www.kler.cn/a/451615.html

相关文章:

  • Doris 资源软硬限详解
  • JS中若干相似特性的区别
  • 灵当CRM getMyAmbassador Sql注入漏洞复现(附脚本)
  • dns一般设置为多少
  • 结合实例从HCI层分析经典蓝牙连接和配对过程
  • Linux搭建TRELLIS详细流程
  • Hive与HBase的区别有哪些
  • 商城小程序开发有哪些流程?传统商家如何抓住小程序的流量!
  • 【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
  • 项目练习:element-ui的valid表单验证功能用法
  • 常见API
  • 【Rust自学】6.2. Option枚举
  • Log4j1.27配置日志输出级别不起效
  • 《C++设计模式》工厂模式
  • 抖音视频下载去水印工具推荐
  • DATAHUB FRONTEND 开发测试:
  • WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
  • “开启智能新时代”——机器连接与边缘计算
  • 微信小程序:解决顶部被遮挡的问题
  • Python8-写一些小作业
  • QT的错误记录:同文件的的两个QThread子类信号槽关联
  • MySQL for update skip locked 与 for update nowait
  • vue前端编译报错解决方法
  • 007-spring-bean的相关配置(重要)
  • 2025人工智能与教育科学国际会议(AIES 2025)
  • stm32硬件iic