過載運算子的常見方法
過載運算子不需要一定是成員函式,以Person和<運算子為例,下列三種寫法都是正確的
// "a<b"的過載的三種方法
//作為成員函式過載(常見)
class Person{
string name;
int age;
public:
Person(const char* name, int age):name(name),age(age){}
bool operator<(const Person& b);
};
bool Person::operator<(const Person& b)
{
//作為成員函式時,*this即為左運算元a
...
}
//作為友元函式過載
class Person{
string name;
int age;
public:
Person(const char* name, int age):name(name),age(age){}
friend bool operator<(const Person& a,const Person& b);
};
bool operator<(const Person& a,const Person& b)
{
...
}
//作為普通函式過載(不推薦)
class Person{
public://注意,過載運算子為普通函式時,使用到的類成員必須為public
string name;
int age;
public:
Person(const char* name, int age):name(name),age(age){}
};
bool operator<(const Person& a,const Person& b)
{
...
}
相關文章
- 03常見運算子
- 過載運算子
- 運算子過載
- [Lang] 運算子過載
- Python 運算子過載Python
- C++——運算子過載C++
- C++運算子過載C++
- python之運算子過載Python
- C++ 運算子過載C++
- C++中運算子的過載C++
- C++過載的奧義之運算子過載C++
- Python入門——變數和常見的運算子Python變數
- Javascript實現運算子過載JavaScript
- 指標運算子過載(* 和 ->)指標
- C++ 過載運算子和過載函式C++函式
- 過載運算子、解構函式函式
- 瞭解下C# 運算子過載C#
- 深入C++05:運算子過載C++
- 重拾Kotlin(18)-運算子過載Kotlin
- 【python隨筆】之【運算子過載】Python
- C++運算子過載詳解C++
- 常用的過載運算子你瞭解幾個?
- 教你快速理解C++中的運算子過載C++
- C++運算子過載的一些困惑C++
- 開心檔之C++ 過載運算子和過載函式C++函式
- Java常見知識點彙總(⑤)——運算子優先順序Java
- 手寫程式語言-實現運算子過載
- C#運算子過載---逐步地分析與理解C#
- C++學習筆記(二) 運算子過載C++筆記
- Kotlin教程(七)運算子過載及其他約定Kotlin
- ## 運算子和方法的區別
- C++11運算子過載詳解與向量類過載例項(<<,>>,+,-,*等)C++
- 12 Python物件導向程式設計:運算子過載Python物件程式設計
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- 運算子 運算子
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- 運算子的關係,什麼叫一元運算子,二元運算子,三元運算子,運算子優先順序,以及運算子的
- c++ 運算子過載、執行緒安全實現單例C++執行緒單例