用於對常規的運算子過載,部分運算符號無法過載。
可過載的運算子
提供了一種除成員函式外的介面,用於訪問資料。
友元分為三種:友元函式,友元類,友元成員函式。
此處主要用於介紹:非成員過載運算子函式。
運算子表示式左邊的運算元對應於運算子函式的第乙個引數,運算子表示式右邊的運算元對應於運算子函式的第二個引數。
必須使用友元函式的時候:第乙個運算元不是自身物件。例如《和》。
class
time
time operator+(
const time & m.
const time & n)
//不要加上time字首,不屬於time
#include
using
namespace std;
class
complex
double
show_im()
const
friend ostream &
operator
<<
(ostream & os,complex & temp)
;//《過載 輸出
friend istream &
operator
>>
(istream & is,complex & temp)
;//>>過載 輸入
///friend complex operator*(
const
double num,
const complex & temp)
;void
set(
double m_re,
double m_im);}
;int
main()
cout<<
"over"
;return0;
}complex::
complex()
complex::
complex
(double m_re,
double m_im)
complex complex::
operator+(
const complex & temp)
const
complex complex::
operator-(
const complex & temp)
const
complex complex::
operator*(
const
double num)
const
//數值乘法
complex complex::
operator*(
const complex & temp)
const
//複數乘法
complex complex::
operator~(
)const
void complex::
set(
double m_re,
double m_im)
///ostream &
operator
<<
(ostream & os,complex & temp)
//《過載 輸出
else
return os;
}istream &
operator
>>
(istream & is,complex & temp)
//>>過載 輸入
/complex operator*(
const
double num,
const complex & temp)
用於處理乘法的順序的例程。
#include
using
namespace std;
//過載運算子與友元函式
class
vector
;int
main()
vector::
vector()
vector::
vector
(double mx,
double my)
double vector::
operator*(
const vector & temp)
void vector::
operator+(
const vector &temp)
void vector::
show()
const
double vector::
show_x()
const
double vector::
show_y()
const
///數乘的順序問題
void vector::
operator*(
const
int num)
vector operator*(
const
int num,
const vector & temp)
//此處不必再加上friend
接受乙個引數的建構函式,提供乙個或多個預設值引數也可以,將實現從該引數型別到類型別的轉換。
class
time
乙個不能指定返回型別,且不具有引數的類方法**換函式)可實現類到標準型別(int,double)的轉換。
class
time
time ::
operator
int(
)const
;time ::
operator
double()
const
;
在型別轉換時,要注意防止二義性的問題。
C 之類的特性(一)
由於我對物件導向的程式設計思想特別特別喜愛,所以,每上手使用一中語言前,我總要看看它有沒有類這個概念。有的時候用物件導向開發效率提高不了多少,儘管如此,我還是喜歡用,因為它讓我覺得整齊,整潔。最早的時候我們用自己寫init,自己呼叫init來構造物件的成員變數,但是久而久之,這種繁瑣的工作誰還喜歡做...
C 之類的使用
屬性與字段的使用類似ios class class1 get public intage get 建構函式 public class1 string name,int age public void function 年齡 this.name,this age 析構函式 class1 物件初始化器 ...
C 之類和物件 封裝 類和特性
public 公共 類內可以訪問,類外可以訪問 protected 保護 類內可以訪問,類外不可以訪問 兒子可以訪問父親中的內容 private 私有 類內可以訪問,類外不可以訪問 兒子不可以訪問父親中的內容 class person 可寫,並且能檢測資料的有效性 string getname 可讀...