C++中 {}的功能

c++ 中 {}的功能

1、代码块(作用域)

花括号用于创建代码块,也就是一个作用域。在一个代码块中,可以定义局部变量,控制变量的作用范围,以及变量的生命周期。代码块可以在函数、条件豫剧、循环语句等地方使用。

void exampleFunction()
{
    int x = 10;
    {
        int y = 20; // 局部变量 y 只在此代码块内可见
    }
    // y 在这里不可见
}

2、初始化列表:

花括号可用于初始化各种类型的数据结构,例如数组、结构体、容器等。

int arr[] = {1, 2, 3, 4, 5}; // 初始化整数数组
std::vector<int> vec = {10, 20, 30}; // 初始化整数向量
struct Point { int x, y; };
Point p = {5, 7}; // 初始化结构体

3、lambda 表达式:

花括号用于定义 lambda 表达式的函数体。

auto lambda = [](int x) {
    return x * x;
};

4、初始化器列表构造函数(C++11 及以后版本):

花括号可以用于调用初始化器列表构造函数,这在创建对象时非常有用。

std::vector<int> vec = {1, 2, 3, 4};
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}};

5、类成员初始化列表:

在类的构造函数中,花括号可以用于成员初始化列表。

class MyClass {
public:
    MyClass(int x, int y) : a{x}, b{y} {}
private:
    int a, b;
};

6、枚举类(C++11 及以后版本):

花括号可以用于定义枚举类中的成员。

enum class Color { Red, Green, Blue };
Color c = Color::Red;

7、无默认构造函数的类的默认初始化(C++11 及以后版本):

对于没有默认构造函数的类,花括号可以用于默认初始化。

class NoDefaultConstructor {
public:
    NoDefaultConstructor(int x) { /* constructor code */ }
};
NoDefaultConstructor obj1 = {42}; // 使用初始化列表构造函数

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值