考虑示例,我知道将一个对象分配给另一个对象,调用复制构造函数,Line 2
确实在这里也调用了复制构造函数。 这里复制构造函数调用的总数是多少?
class Sample{
public:
void compare(Sample args){ }
};
int main(){
Sample s1;
Sample s2=s1; //Line 1
s1.compare(s2); // Line 2
}
只需将复制构造函数添加到您的类定义中,然后查看结果。
#include <iostream>
class Sample{
public:
Sample() = default;
Sample( const Sample & ) { std::cout << "Sample( const Sample & )\n"; }
void compare(Sample args){ }
};
int main(){
Sample s1;
Sample s2=s1; //Line 1
s1.compare(s2); // Line 2
}
程序输出为
Sample( const Sample & )
Sample( const Sample & )
如果对通话进行评论
// s1.compare(s2); // Line 2
然后输出将是>
Sample( const Sample & )