在C++中,如何为函数中的列表引用指定默认值?
void fun(
std::list<My_Object *> &the_list,
int n = 4
)
Run Code Online (Sandbox Code Playgroud)
如果它是一个简单的引用,那么你唯一默认的是一个有效的左值,它可能是不可用的.但如果它是对const的引用,你可以将它默认为一个空列表,如下所示:
void fun(
std::list<My_Object *> const & the_list = std::list<My_Object *>(),
int n = 4
)
Run Code Online (Sandbox Code Playgroud)
如果您有一个名为a的列表,该列表在声明站点上可用,那么就像这样
void fun(
std::list<My_Object *> & the_list = a,
int n = 4
)
Run Code Online (Sandbox Code Playgroud)
但要小心,以便a在调用该函数时列表仍然"活着"
在C++中,如何为函数中的列表引用指定默认值?
在你的情况下,我不会.要么重载函数以便可以在没有列表的情况下调用它,要么为每个指针获取参数,以便用户可以传递NULL指针.
我非常喜欢超载.