C++新手运算符重载问题

目前任何被广泛使用的vector类的取模函数都用的是命名的函数,而不是重载操作符.因为大家都知道,重载操作符要按照基本法来.然后你那个写法真是把我逗乐了...
■网友
编程和数学还是有不同的,不然乘法就不是星号而是x了不是吗重载操作符的意义也得搞清楚,大部分情况下是为了让这个类和普通的基本数据结构一样参与运算,而不是为了像纸上写公式一样表达数学
■网友
C++ 的 operator overloading 並沒有你想像中那麼靈活。你程序裏這個 要調用的話,也應該寫成:cout \u0026lt;\u0026lt; b;這樣不會報錯,能算出結果。但是,這真不是 應該的用法。
■网友
我手机进来的,就不细说了,真是吓了我一跳,建议你好好复习c艹的运算符到底有哪些,都是什么用。这是下标运算符。一般当你写了一个数据集合的类的时候通过重载它,来实现这个数据集的下标访问。典型的例子是vector。至于竖线,抱歉我手机打不出来。一条竖线是位操作或运算,两条竖线连一起是逻辑运算符或。根本不能分开当括号一样用!所以也不存在重载。你这需求得发明一个新语言了。来,务实点,写个类的方法来实现你的功能吧。
■网友
题主的示例代码不是很好,我贴个小修了之后的代码吧,可以看看的示例#include\u0026lt;iostream\u0026gt;using namespace std;class Vector{public: Vector(int x=0, int y=0, int z=0); int operator(int i)const;private:int x, y, z;};Vector::Vector(int x, int y , int z){this-\u0026gt;x = x; this-\u0026gt;y = y; this-\u0026gt;z = z;}int Vector::operator(int i)const{return (x+y+z)*i;}int main(){Vector b(1,1,1); cout \u0026lt;\u0026lt; b; return 0;}


    推荐阅读