#include#includeusing namespace std;
class my_complex
{public: //關係運算子過載
bool operator == (const a& );
bool operator != (const a& );
bool operator < (const a& );
bool operator <= (const a& );
bool operator > (const a& );
bool operator >= (const a& );
public: //邏輯運算子過載
bool operator || (const a& );
bool operator && (const a& );
bool operator ! ();
public: //單目運算子過載
my_complex& operator + ();
a& operator - ();
a* operator & ();
//a& operator * ();
public: //自增運算子過載
a& operator ++ ();//前置++
a operator ++ (int);//後置++
a& operator --();//前置--
a operator -- (int);//後置--
public:
a operator | (const a& );
a operator & (const a& );
a operator ^ (const a& );
a operator << (int i);
a operator >> (int i);
a operator ~ ();
public: //賦值運算子的過載
a& operator += (const a& );
a& operator -= (const a& );
a& operator *= (const a& );
a& operator /= (const a& );
a& operator %= (const a& );
a& operator &= (const a& );
a& operator |= (const a& );
a& operator ^= (const a& );
a& operator <<= (int i);
a& operator >>= (int i);
public: //記憶體運算子的過載
void *operator new(size_t size);
void *operator new(size_t size, int i);
void *operator new(size_t size);
void operator delete(void*p);
void operator delete(void*p, int i, int j);
void operator delete (void* p);
public:
/* 特殊的運算子過載 下面的運算子只能用一種,特殊吧。 這些運算子的過載只能是成員函式 */
a& operator = (const a& );
char operator (int i);//返回值不能作為左值
const char* operator () ();
t operator -> ();
/*下面的型別轉換符*/
operator char* () const;
operator int ();
operator const char () const;
operator short int () const;
operator long long () const;
public:
/*而這些只能以友元函式的形式過載*/
friend inline ostream &operator << (ostream&, a&);//輸出流
friend inline istream &operator >> (istream&, a&);//輸入流
public: //一般運算子的過載
my_complex operator +(my_complex &sd);
my_complex operator - (my_complex &sd);
my_complex operator * (my_complex &sd);
my_complex operator / (my_complex &sd);
friend complex operator +(const complex &c1, const complex &c2);
friend complex operator -(const complex &c1, const complex &c2);
friend complex operator *(const complex &c1, const complex &c2);
friend complex operator /(const complex &c1, const complex &c2);
public :
void get_data(void )
{ cout << "real = "<< real<
C 中運算子過載
運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。比如int x,y 可以為y x y 而 my c1,c2 如果想使得兩個自定義的物件相加,以前只能調 用函式計算它們的和。而現在只要定義了運算子過載就能實現c1 c1 c2.所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有的函式賦予新的...
C 中運算子過載
運算子過載可以寫在類的內部,也可以寫成全域性函式形式,其中運算子 在過載時必須宣告為類的成員函式 而運算子 sizeof 不能被過載 演算法運算子的過載不會改變運算子原有的優先順序。例子 include include include using namespace std class comple...
C 中的運算子過載(一) 運算子過載的概念
概述 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。運算子過載 operator overloading 只是一種 語法上的方便 也就是它只是另一種函式呼叫的方式,只是為了方便我們使用,運算子只能運算內建的資料型別,對於自定義的資料型別不能運算,所以我們可以過載...