关于隐式调用构造函数和复制构造函数的有关问题

关于隐式调用构造函数和复制构造函数的问题
看C++ primer的时候
关于复制构造函数的描述:
当用于类类型对象的时候,初始化的复制形式和直接行使有所不同,直接初始化直接调用与实参匹配的的构造函数,
string(10,‘.’)//direct -initialization
复制初始化总是调用复制构造函数,复制 初始化首先使用指定构造函数创建一个临时对象,然后用复制构造函数将那个临时对象复制正在创建的对象
string null_book = "9--999--999"//copy-initialization

-------------------------------------------------------
我的理解在copy-intialization的时候,也只是调用了一个一次与参数匹配构造函数而已。
我的实验如下:运行环境--VS2008
class test
{
public:
test(int i)
{
  cout<<"test constructor is called!"<<endl;
b = i;
}
test(int i, string str):b(i),s(str)
{
cout<<"test constructor is called!"<<endl;
}
test(const test&bbb)
{
b = bbb.b;
s = bbb.s;
cout<<"test copy constructor is called!"<<endl;
}

private:
  string s;
  int b;
};
int main(int argc, char **argv)


test test_1 = 4;
getchar();
return 0;
}

---------------------------------
结果:test constructor is called!

所以我认为这里并没有调用test这个类的拷贝构造函数,而只是调用了入参为int i的构造函数而已


------解决方案--------------------
楼主 应该看看构造函数和拷贝构造函数的用法与区别。在楼主这种情况下 当然不会调用拷贝构造函数了