C++_运算符重载

来源:互联网 发布:java 中介者模式 编辑:程序博客网 时间:2024/05/20 11:25
//***** 运算符重载 *****class Num{public:    Num()    {        std::cout << "构造函数..." << std::endl;        i = 10;    }    ~Num()    {        std::cout << "析构函数..." << std::endl;    }    void operator++()  // 运算符重载函数就是在这里,operator是C++关键字,++代表的是对++这个运算符重载,这是前置运算符重载    {        ++ i;  // 成员变量自加    }    //const Num operator+(const Num &r)  // 加法运算符重载    //{        //i + r.GetValue();    //}    void SetValue(int x)    {        i = x;    }    int GetValue()    {        return i;    }private:    int i;};//***** 运算符重载应用 *****void test1(){    Num m_Num;    std::cout << "没有运算符重载的i的值:" << m_Num.GetValue() << std::endl;    ++m_Num;  // 运算符重载使用,对象要能够自加,必须重载自加运算符    std::cout << "有运算符重载的i的值:" << m_Num.GetValue() << std::endl;    //Num a;    //Num b;    //Num c = a + b;    /*    为什么对象自加,会调用运算符重载函数,是因为在C++中,一切运算符运算操作,都是通过函数来进行的。    例如: 1 + 2,C++编译器就自动查找标准库,找到一个这样的运算符重载函数来进行运算:operator+(int,int)    例如: 1.2 + 1.3,C++编译器就自动查找标准库,找到一个这样的运算符重载函数来进行运算:operator+(float,float)    其余的形式同样的道理    */}//









0 0
原创粉丝点击