【发布时间】:2012-11-14 08:18:13
【问题描述】:
我有一个构造函数,看起来像:
RandomClass(const int16_t var1, const SecondClass& var2);
我需要将默认参数传递给第二个参数,所以目前我做这样的事情:
RandomClass(const int16_t var1, const SecondClass& var2 = *(new SecondClass(*(new std::unordered_map<int16_t, double>())));
这太尴尬了。请注意,我不想使用重载的构造函数,或者将第二个参数从引用更改为指针。
传递默认参数的优雅方式是什么?
【问题讨论】:
-
优雅的方法是使用 2 个重载而不是默认值。
-
您当前的方法不仅不优雅,还会造成内存泄漏——那些
news 没有与deletes 配对。
标签: c++ constructor arguments default-value