如何初始化对象指针列表
how to initialize list of object pointers
我想构建一个指向对象的指针的链表,根据定义对其进行初始化,而不是多次调用 push_back()
会很愚蠢。
class Myclass {
int x;
string name;
bool test;
//whetever
public:
Myclass();
void inc_x();
~Myclass();
};
主要:
Myclass c1,c2,c3,c4;
list<Myclass*> mylist;
/*
list<Myclass*> mylist={&c1,&c2}; compiler returns initialized by constructor not by {...}
*/
我尝试使用 list<Myclass*>::list<Myclass*>
作为 类 构造函数形式,但是编译器 returns 它需要模板语法。
这是什么意思?
如何初始化这些列表?
在这种情况下,如何定义构造函数而不是使用默认构造函数?
std::initializer_list
和关联的构造函数是 C++11 功能,因此必须在您的编译器中启用。查看实施所需的文档以了解如何执行此操作。在 Clang 或 GCC 中,您只需在命令行调用中传递 -std=c++11
。
我想构建一个指向对象的指针的链表,根据定义对其进行初始化,而不是多次调用 push_back()
会很愚蠢。
class Myclass {
int x;
string name;
bool test;
//whetever
public:
Myclass();
void inc_x();
~Myclass();
};
主要:
Myclass c1,c2,c3,c4;
list<Myclass*> mylist;
/*
list<Myclass*> mylist={&c1,&c2}; compiler returns initialized by constructor not by {...}
*/
我尝试使用 list<Myclass*>::list<Myclass*>
作为 类 构造函数形式,但是编译器 returns 它需要模板语法。
这是什么意思?
如何初始化这些列表?
在这种情况下,如何定义构造函数而不是使用默认构造函数?
std::initializer_list
和关联的构造函数是 C++11 功能,因此必须在您的编译器中启用。查看实施所需的文档以了解如何执行此操作。在 Clang 或 GCC 中,您只需在命令行调用中传递 -std=c++11
。