c – 这个构造函数是否可以接受?
发布时间:2020-12-16 10:16:47  所属栏目:百科  来源:网络整理 
            导读:假设我有一个正确实现了复制构造函数和重载=运算符的c类.通过正确实施,我的意思是他们正在工作并执行深层复制: Class1::Class1(const Class1 class1){ // Perform copy}Class1 Class1::operator=(const Class1 *class1){ // perform copy return *this;} 现
                
                
                
            | 
                         
 假设我有一个正确实现了复制构造函数和重载=运算符的c类.通过正确实施,我的意思是他们正在工作并执行深层复制: 
  
  
  
Class1::Class1(const Class1 &class1)
{
  // Perform copy
}
Class1& Class1::operator=(const Class1 *class1)
{
  // perform copy
  return *this;
} 
 现在让我说我也有这个构造函数: Class1::Class1(Class1 *class1)
{
   *this = *class1;
} 
 我的问题是上述构造函数是否可以接受?这是我继承和维护的代码. 解决方法
 我会说,“不”,原因如下: 
  
  
        >传统的复制构造函数接受其参数作为const引用,而不是指针. 在operator =中“重用”复制构造函数的传统方法是copy-and-swap idiom.我建议以这种方式实现类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- Heroku bundle使用Gem :: RemoteFetcher :: FetchError失败
 - cocos2d-x 使用位图工具制作 fnt字体
 - XML 语法规则
 - Cocos2d-X 3.4版-虚拟摇杆控制精灵上下左右《赵云要格斗》
 - ASP.NET MVC使用EPPlus,导出数据到Excel中
 - 修改power_profile.xml解决手机耗电问题
 - ResultSet转XML
 - Oracle Database Data Pump(expdp/impdp)
 - 对xml的顶层layout布局(操控整个layou的xml)
 - [ERROR] XML Parser Error on line 11: 注释中不允许出现字
 
