假设有如下类:
class HasPtr{
public:
HasPtr(const string &s):
ps(new string(s)),i(0){}
HasPtr(const HasPtr &hp){
ps=new string(*hp.ps);
i=hp.i;
}
HasPtr(const char *s):ps(new string(s)),i(0){}
HasPtr & operator=(const HasPtr &);
private:
string *ps;
int i;
};
情况一 :HasPtr h1("hehe"),h2; h2=h1; 问:编译器会优先调用拷贝构造函数和拷贝赋值运算符?
情况二:假如没有定义拷贝构造函数,执行与上述相同的代码。问:编译器会优先调用自定义的拷贝赋值运算符,还是编译器合成的拷贝构造函数?
新手求大神指教。

拷贝构造函数和拷贝赋值运算符的调用问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-