出于教学目的,我用c++重新创建了一个class list数据结构,其中包含了我想到的所有特性。我想知道是否有一种方法可以让用户使用这种语法:
class list
list my_list = {1, 2, 3, 4, 5};
或者如果可能的话,甚至是这个语法(我不认为它是,但我会问无论如何)...
list my_list = [1, 2, 3, 4, 5];
让我知道,如果唯一的方法是搞乱编译器,它不能与运算符重载。
wgx48brx1#
这就是初始化器列表的作用。例如,你可以有一个如下的构造函数:
class list { public: list(std::initializer_list<int> l) { for (int x : l) { // do something with x } } };
或者使用模板使其更通用:
template<typename T> class list { public: list(std::initializer_list<T> l) { for (const auto &x : l) { // do something with x } } };
1条答案
按热度按时间wgx48brx1#
这就是初始化器列表的作用。例如,你可以有一个如下的构造函数:
或者使用模板使其更通用: