【问题标题】:Initializing a class with an array?用数组初始化一个类?
【发布时间】:2017-01-22 17:30:49
【问题描述】:

使用 STL 的向量类,我可以使用项目列表(或数组)初始化向量:

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

我可以在我自己的类中实现这个功能吗?我正在编写自己的 Vector 类来练习实现数据结构并且想做:

MyVectorClass<int> = { 1, 2, 3 };

【问题讨论】:

  • 看std::initializer_list&lt;int&gt;。

标签: c++ class initialization


【解决方案1】:

是的。使用std::initializer_list。

在你的类中定义一个使用std::initializer_list&lt;T&gt;的构造函数:

MyVectorClass(std::initializer_list<T> initializer)
{
    for(T& i : initializer)
    {
        // Do whatever you want with items
    }
}

【讨论】:

    【解决方案2】:

    当然。 C++ 的设计目标之一是标准库可以用该语言实现(有一些值得注意的例外)。

    您要查找的内容称为std::initializer_list。它不是一个数组!见std::vector constructor documentation。

    【讨论】:

    • 可能值得举一个这些例外的例子,或者链接到一个列表。
    猜你喜欢
    • 2019-06-25
    • 1970-01-01
    • 2018-12-21
    • 2013-05-29
    • 1970-01-01
    • 2016-12-17
    • 2011-07-30
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多