调用另一个构造函数 C++
Calling another constructor C++
我有这样的东西:
Foo::Foo(vector<item> items) {
// do stuff
}
我想从另一个构造函数调用这个构造函数:
Foo::Foo(char* buf, size_t num) {
// unpack the bytes into vector
Foo::Foo(items);
}
这在 C++ 17+ 中可行吗?我知道您可以使用初始化列表调用另一个构造函数,但这似乎更棘手
只需调用委托构造函数。使用辅助函数构造 vector<item>
.
namespace {
vector<item> helper(char*buff, size_t num)
{
/* your implementation for re-packaging the data here */
}
}
Foo::Foo(char*buff, size_t num)
: Foo(helper(buff,num))
{}
我有这样的东西:
Foo::Foo(vector<item> items) {
// do stuff
}
我想从另一个构造函数调用这个构造函数:
Foo::Foo(char* buf, size_t num) {
// unpack the bytes into vector
Foo::Foo(items);
}
这在 C++ 17+ 中可行吗?我知道您可以使用初始化列表调用另一个构造函数,但这似乎更棘手
只需调用委托构造函数。使用辅助函数构造 vector<item>
.
namespace {
vector<item> helper(char*buff, size_t num)
{
/* your implementation for re-packaging the data here */
}
}
Foo::Foo(char*buff, size_t num)
: Foo(helper(buff,num))
{}