nit*_*ian 5 c++ constructor copy-constructor
可能重复:
为什么在这种情况下不调用复制构造函数?
考虑下面的示例程序:
#include <iostream>
using namespace std;
class sample
{
private:
int x;
public:
sample(int a=0) : x(a)
{
cout << "default ctor invoked\n";
}
sample(const sample& obj)
{
cout << "copy ctor invoked\n";
}
};
int main()
{
sample s2 = sample(20); //Line1
sample s3 = 20; //Line2
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在Line1,首先使用参数20 sample调用类的构造函数.explicitly然后我希望调用复制构造函数来初始化s2.
在Line2中,首先使用参数20 sample调用类的构造函数.implicitly这里我还希望调用复制构造函数来初始化s2.
在这两种情况下,都不会调用复制构造函数?为什么会这样?我相信,我对复制构造函数的调用有一些问题.有人能纠正我哪里出错了吗?
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |