如何在c++中使用构造函数委托来使用命名构造函数

How do I use named constructors in C++ using constructor delegates?

本文关键字:构造函数 c++      更新时间:2023-10-16

假设我有一个构造函数和一个委托构造函数

SomeClass(const std::string&& _name) : obj_needs_construction(100), name(_name) {}
SomeClass(const std::string& _name) : SomeClass(_name) {}

但两者都使用相同的类型,我见过许多解决方案,但它们似乎都能运行,因为它们制造不同的类型,但这在我的情况下不起作用。我怎么解决这个问题?

谢谢。

Replace

SomeClass(const std::string&& _name) : obj_needs_construction(100), name(_name) {}
SomeClass(const std::string& _name) : SomeClass(_name) {}

白马王子;只有

SomeClass( std::string const& name )
    : obj_needs_construction( 100 )
    , name_( name )
{}

就是这样。

SomeClass(const std::string& _name) : SomeClass(std::move(_name)) {}