拷贝初始化 vector<int> = 10;为什么是错的
拷贝初始化 vector<int> = 10;为什么是错的这里C++primer说接受大小参数的构造函数是explicit的
我明白了explicit型的构造函数无法对参数转变类型。
可是这句话哪里调用构造函数了?
2017-03-10 10:06
2017-03-10 10:28
程序代码:#include <iostream>
struct foo
{
/*explicit*/ foo( int v ) : v_(v)
{
std::cout << "foo(" << v_ << ")\n";
}
private:
int v_;
};
int main( void )
{
foo a( 1 );
foo b = 2; // 如果foo::foo加了explicit限制则失败
foo c{ 3 };
foo d = { 4 }; // 如果foo::foo加了explicit限制则失败
}
2017-03-10 10:35
2017-03-10 22:35
2017-03-11 16:48
2017-03-11 22:08
2017-03-12 01:54