这可能吗?
我知道您可以使用列表语法初始化结构.
IE
struct Foo f = { a, b, c};
return f;
Run Code Online (Sandbox Code Playgroud)
有可能像在类和构造函数中那样在一行中执行此操作吗?
谢谢
Geo*_*che 27
如果您希望结构保持为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);
}
Run Code Online (Sandbox Code Playgroud)
使用C++ 0x 统一初始化消除了对该函数的需求:
Foo test() {
return Foo{1, 2, 3};
// or just:
return {1, 2, 3};
}
Run Code Online (Sandbox Code Playgroud)
Ami*_*hum 14
为结构创建一个构造函数(就像一个类),就这样做
return Foo(a,b,c);
Run Code Online (Sandbox Code Playgroud)
编辑:只是为了澄清:C++中的结构就像类,它们的默认访问权限是公共的(而不是类中的私有).因此,您可以非常简单地创建构造函数,例如:
struct Foo {
int a;
Foo(int value) : a(value) {}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17446 次 |
| 最近记录: |