C 之類的特性使用

2021-09-29 13:34:33 字數 3475 閱讀 3755

用於對常規的運算子過載,部分運算符號無法過載。

可過載的運算子

提供了一種除成員函式外的介面,用於訪問資料。

友元分為三種:友元函式,友元類,友元成員函式。

此處主要用於介紹:非成員過載運算子函式。

運算子表示式左邊的運算元對應於運算子函式的第乙個引數,運算子表示式右邊的運算元對應於運算子函式的第二個引數。

必須使用友元函式的時候:第乙個運算元不是自身物件。例如《和》。

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 可讀...