木子剑
生命不熄,学习不止!

在C++中,有函数重载和操作符重载,函数重载比较好理解,相对简单一点。

操作符重载主要针对用户自建的类,要进行一些运算,因为编译器不认识它们。

 

操作符重载: Complex operator+ (Complex& c1,Complex& c2);

complex就是C++的类,可当做是用户新建的;

operator是个关键字,可以形像的当做一个函数名字,重载了这个+运算符

(xxx, xxx);就是参数表,数量不限;

 

引用https://www.runoob.com/cplusplus/cpp-overloading.html的文章,

里面的 Box3 = Box1 + Box2;就是用的重载+运算符,请您细品。。。

 

如果理解了,来一个大BOS级的:

    template<typename T>
    class message : public TBaseMessage
    {
    public:
        INLINE message() : TBaseMessage()   { }
        INLINE const T& operator= (const T& msg) { TCritSect cs; *(const_cast<T*>(&Msg)) = msg; return const_cast<const T&>(Msg); }
        INLINE          operator T() const       { TCritSect cs; return const_cast<const T&>(Msg); }
        INLINE void            out(T& msg)       { TCritSect cs; msg = const_cast<T&>(Msg); }

    protected:
        volatile T Msg;
    };

上面就是RTOS里面的,类,模板,构造 ,成员函数,成员数据,操作符重载,都有了,我们细品。

回味无穷。。。哈哈,在实际使用时,对像XXX = XXX就OK了,会重载operator=这个。

 

 

时间2021-11-18

在之前的 C++拷贝、赋值函数  随记中,细心的兄弟可能会发现,实现的工作原理,就是我们这个随记的操作符重载

C++每一个知识点都是环环相扣的,  

 

时间2022-5-14

一个有用的C++网站  https://en.cppreference.com/w/Main_Page

 

posted on 2021-11-01 08:42  木子剑  阅读(321)  评论(0编辑  收藏  举报