开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
无
问题(Question):
大家好! 小弟是C++的新手
我们都知道 int& q=5; 的写法是错误的
如果要达成上述的目标
必须宣告成 const int& q=5;
如今我要做一个复数类别
并实作运算子多载
例如:
Complex operator+(const Complex& x){
...
}
然后宣告三个物件
Complex x,y,z;
z=x+y //ok
z=x+5.0 //ok
z=5.0+x //Wrong
所知道正确写法会被改为
friend Complex operator+(const Complex& x,const Complex& y){}
才能达成!
我比较好奇的是friend到底真正改变的是什么?
我看过了一些网络资料但是 还是有点不太清楚
最后
为什么一定要把引数宣告成const?
这是预防什么情况呢?
我的想法大概是如下:
Complex a,b;
a=b+5.0
为的是因为5.0是常数
所以一定要宣告成const才能接收
我觉得观念不是很清楚
有没有更详尽的讲法@@
感谢各位
喂入的资料(Input):
无
预期的正确结果(Expected Output):
无
错误结果(Wrong Output):
无
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):