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;}
推荐阅读
- 喜欢养花必养的3种花,插叶子就能活,适合养花新手
- 新手养护花卉,就养张似白珍珠,花香袭人的花卉,美极了!
- 非计算机专业想要利用课余时间深入自学C++,想要找到比较体面的工作大概需要啥水平
- 孩子|小孩发烧的处理方法有物理降温与药物退烧!但很多新手父母不会
- 中年|开车遇到“锯齿车道”,新手司机勇往直前,老司机驾照还有分吗
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 宝宝|应该如何照顾?新手父母入门教学:刚出生的宝宝
- C、C++、java等编程语言都有哪些坑
- 护理|脐部护理问题多,新手宝妈记住这三点有种纠结叫“脐带脱落前”
- c++写http服务器不用cgi和apache该用啥