我有两个类,A
可以从string
构建,因此定义了从string
到A
的转换。如何使用转换构造函数初始化矢量
class A
{
public:
A(std::string s) : s_(s) {}
private:
std::string s_;
};
class B
{
public:
B() : v_{"foo", "bar"} {}
private:
std::vector<A> v_;
};
类B
具有含有A
对象vector
构件。构造函数用字符串初始化矢量(v_
)。这不起作用。为什么?
请提供错误信息 – user463035818
我会避免使用我的代码里面这样的隐式convertions做到这一点。它可能导致不可预知的结果。在你的'B'构造函数中,你甚至会期望2个隐式转换:首先是'const char *'到'std :: string',然后'std :: string'到'A'。 – Ternvein