gpt4 book ai didi

C++在类中初始化一个空列表

转载 作者:太空狗 更新时间:2023-10-29 23:35:31 25 4
gpt4 key购买 nike

如何将空列表初始化为 C++ 类中的私有(private)成员?我不想提示用户传入一个空列表,而是在创建该类的新实例时只创建一个。

标题.h

class MyClass{
public:
MyClass();
private:
list<int> myList;
}

我的类.cpp

MyClass::MyClass()
:myList(list<int>){}

这不像写的那样有效,我在这里缺少什么?

最佳答案

您无需执行任何操作。顾名思义,默认构造函数是默认调用的。所以这已经是正确的:

class MyClass{
public:
MyClass() { } // c++03
MyClass() = default; // c++11
private:
std::list<int> myList;
};

如果你想在成员初始化器列表中仍然有 myList,你可以通过简单地提供空括号来实现:

class MyClass{
public:
MyClass()
: myList() // explicitly use default ctor
{}
private:
std::list<int> myList;
};

关于C++在类中初始化一个空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255813/

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