加法運算子過載+
乘法運算子與其相似這裡就不舉例子了
加法運算子的例子:
#include
using
namespace std;
class
aint a;};
intmain()
接下來過載左移運算子<<
假如乙個類的物件p,想要用cout<#include
using
namespace std;
class
aint a;
int b;};
intmain()
cout的型別是ostream,由於全域性只能有乙個cout,所以不管是傳參還是返回cout都要用引用;
所以如果想要用cout<
using
namespace std;
class
person
private
:int a;
int b;};
ostream&
operator
<<
(ostream &cout,person p)
intmain()
接下來是++運算子過載
++運算子的目的是當某乙個物件如物件p,使用++p或者p++時物件裡邊的資料成員都會+
1;舉個例子++p:
#include
using
namespace std;
class
person
int&
operator++(
)//想要對裡邊的值進行操作必須用引用,要不然它會建立乙個臨時的物件進行返回,返回的不是你所自加的那個數
private
:int a;};
intmain()
當然後置++
#include
using
namespace std;
class
person
person&
operator++(
int)
//加上int可區分++是前置還是後置
private
:int a;};
ostream&
operator
<<
(ostream& cout,person p)
intmain()
接下來是=運算子過載
#include
using
namespace std;
class
person
person&
operator
=(person &p)
//這裡都要引用,都要對已存在的物件進行操作;
age=
newint
(*p.age)
;//這裡存在和淺拷貝一樣的問題,就是當呼叫析構函式時釋放兩遍相同的記憶體,所以要重新為自己在堆區開闢空間
return
*this
;//返回自身的物件才能進行連等}~
person()
//析構處理在堆區開闢的空間;
}int
*age;
//將在堆區開闢空間給age賦值;};
void
text()
intmain()
bool
operator
==(person& p)
//注意時布林型別;
string name;
int a;};
intmain()
else
cout<<
"他倆不等"
}
函式運算子過載(其實就是小括號過載)
#include
#include
using
namespace std;
class
person};
void
text()
void
text1()
intmain()
由於他的呼叫和函式類似,所以又被稱為仿函式; 運算子過載之過載型別運算子
普通型別 類型別 呼叫對應的只有乙個引數 引數的型別就是這個普通型別 的建構函式 需求 boy boy1 10000 薪資 建構函式boy int boy boy2 rock 姓名 建構函式boy char 普通型別賦值給類型別其實很簡單,就是專門的對這個賦值的型別定義乙個建構函式。編譯器在執行 的...
運算子過載 賦值運算子的過載
有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...
運算子過載
c 中的運算子 1。大多數系統預定義運算子都能過載 不值得過載 不能被過載 2過載不能改變優先順序 不能改變結合性 不能改變運算子所需運算元的個數 過載後,可按這些運算子的表達方式使用 運算子過載的語法 一 通過運算子過載函式進行過載 1。運算子過載函式是成員函式 語法形式 type x opera...