注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

C++的赋值操作符是不能继承的 以std::string 为例  

2012-03-01 16:08:11|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

父类的赋值操作符重载不会继承的,现在才发现。想想也是啊,子类如果增加了很多成员的话,父类的赋值肯定会漏掉这些啊。默认的禁止肯定可以阻止不少潜在的问题。

       但自己写了个简单string类,继承std::string,觉得string的那些 赋值还是能够正常工作的,但没有重载确实使用不方便。

只好给他加了了个模板函数,去调用string的:operator=, 这样 下面这些简单的字符串赋值写法才能通过编译。不知道有没有副作用? 以后再说吧。

string  str = "ddd";

COctetString  a = “ddddd”;             //这样方便啊 

a =  str;  

-------------------------

 

class COctetString: public std::string

{

public:

        template <typename  _myType>

COctetString& operator=(_myType _Right){

return static_cast <COctetString&> (std::string::operator=(_Right));

}

private:

}

  评论这张
 
阅读(697)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017