c++ - 在 C++ 中的一行中初始化并返回一个结构

标签 c++ struct

我知道你可以使用列表语法来初始化结构:

struct Foo f = {a, b, c};
return f;

是否可以像使用类和构造函数一样在一行中完成此操作?

最佳答案

如果您希望您的结构保持为 POD ,使用创建它的函数:

Foo make_foo(int a, int b, int c) {
    Foo f = { a, b, c };
    return f;
}

Foo test() {
    return make_foo(1, 2, 3);
}

使用 C++0x uniform initialization消除了对该功能的需求:

Foo test() {
    return Foo{1, 2, 3};
    // or just: 
    return {1, 2, 3};
}

关于c++ - 在 C++ 中的一行中初始化并返回一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3080278/

相关文章:

c++ - 通用 lambda 的熟悉模板语法

c# - 如何在 C# 中从函数返回结构?

c++ - 在结构中引用另一个结构,其中第二个结构也引用第一个结构

c - 有关Double Pointer的问题,结构和不起作用的scanf();

c# - 为什么有些结构继承接口(interface),但不实现其所有成员?

c++ - 我如何指定开始从 C++ 文件中读取特定数量的单词?

c++ - 用于添加两个双向链表的重载运算符

c++ - 从本地 html 文件提交表单

c++ - 为什么 C++11 支持 6 种不同的正则表达式语法?

c - malloc 结构指针数组与结构数组