雙目操作符過載
( ) 的過載
-> 和 * 的過載
符號符號舉例
.peron.name
.*person.*name=*(person.name)
::作用域操作符
?:條件操作符
class point
point& operator++()
void
print()
private:
int m_x;
int m_y;};
//point& operator++(point& p)
//int
main
(void
)
#include
"stdafx.h"
#include
using namespace std;
class point
const point operator++
(int
)//因為不能連+的,所以加個const
void
print()
private:
int m_x;
int m_y;};
//const point operator++(point& p, int) //返回的是臨時變數,所以不能返回引用
//int
main
(void
)
operator+
(l,r)
//全域性
l.operator+
(r)//成員函式
寫法1:全域性函式,在類中申明為友元
#include
"stdafx.h"
#include
using namespace std;
class point
point operator+
(point& p2)
//定義為成員函式,禁止返回區域性變數或者它的引用
void
print()
private:
int m_x;
int m_y;};
//point operator+(point& p1,point& p2) //過載+操作符,在point類裡面申明為友元,禁止返回區域性變數或者它的引用
//int
main
(void
)
#include
"stdafx.h"
#include
using namespace std;
class point
//point& operator+=(point& p2) //或者申明成員函式
//void
print()
private:
int m_x;
int m_y;};
point& operator+
=(point& p1, point& p2)
intmain
(void
)
#include
"stdafx.h"
#include
#include
"person.h"
using namespace std;
class point
// ostream& operator<<(ostream& os) 《操作符禁止寫成員函式,否則呼叫變成: a << cout , 改變本意
// private:
int m_x;
int m_y;};
ostream& operator<<
(ostream& os, point& p)
intmain
(void
)
#include
"stdafx.h"
#include
using namespace std;
class point
void
print()
private:
int m_x;
int m_y;};
istream& operator>>
(istream& is, point& p)
intmain
(void
)
#include
"stdafx.h"
#include
#include
using namespace std;
class student
student
(int id,
const
char name)
//有參構造
student
(const student& another)
//拷貝構造
student& operator=
(const student& another)
//=操作符過載,三件事
int length =
strlen
(another.m_name)
;//3. 開闢記憶體
m_name = new char
[length +1]
;strcpy_s
(m_name, length +
1, another.m_name)
;return
*this;
}void
print()
~student()
}private:
int m_id;
char
* m_name;};
intmain
(void
)
class sqr
//想把s物件 定義成乙個 帶有乙個引數的函式, 求出平方返回
//此函式功能就是 對a求平方
intoperator()
(int a)
private:
int a;};
intmain()
參考智慧型指標章節
操作符過載
ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...
操作符過載
1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...
過載操作符
1.過載操作符1.1 限制過載操作符具有以下限制 1 只有c 預定義的操作符集中的操作符才可以被過載 2 對於內建型別的操作符,它的預定義不能被改變,應不能為內建型別過載操作符,如,不能改變int型的操作符 的含義 3 也不能為內建的資料型別定義其它的操作符 4 只能過載類型別或列舉型別的操作符 5...