运算符重载:即为函数
生活随笔
收集整理的這篇文章主要介紹了
运算符重载:即为函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
重載的運算符即為函數;
運算符重載的原因:運算符對操作數類型不支持。
將運算符移植到新的類型上。
運算符作為函數,與普通函數的調用形式有所不同。
函數:函數名(參量);
運算符:按照運算符的寫法。
c++
class ca { public: int value;//重載為成員函數格式int operator+(const ca &v){return this->value + v.value; // 等同于return value+v.value;} };//重載為非成員函數格式 int operator+(const ca &v1, const ca &v2) {return v1.value + v2.value; }int main() {ca a, b;a.value = 10;b.value = 20;printf("a+b:%d\n", a + b); // 優先用成員函數return 0; }
swift:
運算符重載的原因:運算符對操作數類型不支持。
將運算符移植到新的類型上。
運算符作為函數,與普通函數的調用形式有所不同。
函數:函數名(參量);
運算符:按照運算符的寫法。
? ? aa @ bb;????????????????????? // 隱式調用
????aa.operator @(bb);???? // 顯式調用
c++
class ca { public: int value;//重載為成員函數格式int operator+(const ca &v){return this->value + v.value; // 等同于return value+v.value;} };//重載為非成員函數格式 int operator+(const ca &v1, const ca &v2) {return v1.value + v2.value; }int main() {ca a, b;a.value = 10;b.value = 20;printf("a+b:%d\n", a + b); // 優先用成員函數return 0; }
swift:
infix operator <-- : LogicalConjunctionPrecedence
?
public func <-- <T>(property: inout T, name: String) -> CustomMappingKeyValueTuple {
? ? return property <-- [name]
}
總結
以上是生活随笔為你收集整理的运算符重载:即为函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Algs4-1.5.4给出id[]和sz
- 下一篇: 在Project 2010中添加自定义任