C++重载运算符的继承

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 15:14   11   0

C++语言中的一个基本特性就是继承,那么假如基类中定义了一个重载运算符,我们应该如何继承这个操作符呢?

#include <string>

class CMyString : public std::string
{
    public: 

    CMyString( void ){};  

    virtual ~CMyString( void ){};   

     /** 继承基类的=运算符 */  
    using std::string::operator=;

};

void main()
{    
    CMyString strMine; 
    strMine = "我继承了等号运算符~";
}

通过使用“using 某类::operator某运算符”语句,就可以继承基类中的运算符了。而如果没有加上该语句,编译器会出现以下错误提示:

#include <string>

class CMyString : public std::string
{
    public: 

    CMyString( void ){};  

    virtual ~CMyString( void ){};   

     /** 继承基类的=运算符 */  
     // using std::string::operator=;

};

void main()
{    
    CMyString strMine; 
    strMine = "我继承了等号运算符~";
}

编译错误提示

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP