C++重载运算符的继承

      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 = "我继承了等号运算符~";
}

C++重载运算符的继承_第1张图片

你可能感兴趣的:(C++重载运算符的继承)