gpt4 book ai didi

使用大括号(语法)的 C++ 对象初始化

转载 作者:太空狗 更新时间:2023-10-29 19:42:08 24 4
gpt4 key购买 nike

我刚看到这行代码:

SDL_Color textColor = { 255, 0, 255 };

这让我想知道为什么它可以像数组一样声明。我认为它可能与 textColor(255,0,255); 一样,但当我尝试制作自己的类(class)时它并没有那样工作。任何人都可以解释何时使用这种类型的语法吗?参数去哪里..?

最佳答案

aggregate initialization类型的,很可能是简单的结构或类。例如,

struct Foo 
{
int i,j;
double x,y;
};

int main()
{
Foo f = {1,2, 3.,4.};
}

注意 因为关于结构有一些混淆,上面的例子也适用于,在这种情况下是相同的结构:

class Foo 
{
public:
int i,j;
double x,y;
};

在 C++11 中,这种类型的初始化是 extended to non-aggregate types在特定条件下。

例如

std::vector<int> v = {1,2,3,4,5};

关于使用大括号(语法)的 C++ 对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com