类中的赋值操作和构造容易使人混淆,加以区分,引以为戒:

我用string类为例:

有“=”不一定就是赋值操作,其实,上边的string str2 = str1,就不是赋值操作,它等效下边的语句:

你看到的赋值,其实是调用了拷贝构造函数
回来,再例如:

string str2; 
str2 = str1;
这才是赋值操作,等效于:

string str2(“”); 
str2.operator=(str1); 
即就是:
string str2; //调用参数默认为空串的构造函数:string str2(“”); 
str2 = str1; //调用str2的赋值操作:str2.operator=(str1); 
定要分清。

赐教!





相关文章:

  • 2021-12-23
  • 2022-12-23
  • 2022-01-21
  • 2021-10-24
  • 2022-12-23
  • 2022-12-23
  • 2022-01-02
猜你喜欢
  • 2022-12-23
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案