gpt4 book ai didi

c++ - 是否有可能以这样一种方式实现一个类,即可以像 POD 一样对其进行值初始化

转载 作者:行者123 更新时间:2023-11-30 01:27:30 25 4
gpt4 key购买 nike

我有一个类(让我们将其命名为 TheClass),它经常用于以下情况:几个实例是从常量构造的,并作为几个参数传递给其他构造函数。不幸的是,我必须使用非常繁琐的语法进行初始化:

Otherclass{ TheClass{1, 'a', 2}, 
TheClass{1, 'b', 4},
TheClass{3, 'h', 2},
TheClass{1, 't', 8} }

有没有一种方法可以像初始化 POD 一样初始化类? IE。我希望能够写作

Otherclass{ {1, 'a', 2}, 
{1, 'b', 4},
{3, 'h', 2},
{1, 't', 8} }

编辑:我发布了另一个问题,其中包含我所面临问题的正确定义。请看Is it possible to pass data as initializer_list to std::array of structures?

最佳答案

这应该做你想做的。或者,您可以typedef TheClass t; 或像这样定义一个宏:#define _(x) TheClass x 然后#undef

#include <initializer_list>
class TheClass {
public:
TheClass(int x, char y, int z) { }
};

class OtherClass {
public:
OtherClass(std::initializer_list<TheClass> t) { }
};

int main (int argc, char **argv) {
OtherClass s { {1,'a',2}, {1, 'b', 4}, {3, 'h', 2}, {1, 't', 8}};
return 0;
}

关于c++ - 是否有可能以这样一种方式实现一个类,即可以像 POD 一样对其进行值初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838636/

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