C 高階剖析( 十 八)之其他操作符

2021-10-04 10:40:21 字數 4143 閱讀 1844

1.1 邏輯操作符

1.1.1 邏輯運算子的原生意義

1.1.2 原生語義舉例

int

func

(int i)

intmain()

else

cout<< endl;if(

func(0

)||func(1

))else

return0;

}

1.1.3 邏輯操作符是否可以過載

using

namespace std;

class

test

intvalue()

const};

bool

operator&&(

const test&obj1,

const test&obj2)

//&&過載

bool

operator||(

const test&obj1,

const test&obj2)

// ||過載

test func

(test i)

intmain()

else

cout<< endl;if(

func

(t1)

||func

(t0)

)else

return0;

}

1.1.5 建議

1.2 逗號操作符

1.2.1逗號操作(,)

逗號操作(,)可以構成逗號表示式

1.2.2 案例

using

namespace std;

void

func

(int i)

intmain()

;int i =0;

int j =0;

while

(i<5)

func

(i),

i++;

cout<< endl;

cout<<

"***********************************==="

<

for( i =

0;i<

3;i++)}

cout<< endl;

cout<<

"***********************************==="

<

(i,j)=10

;//dot

cout<<

"i= "

<

cout<<

"j= "

<

return0;

}

void

func

(int i)

intmain()

,,};

int i =0;

int j =0;

while

(i<5)

cout<< endl;

cout<<

"***********************************==="

<

for( i =

0;i<

3;i++)}

cout<< endl;

cout<<

"***********************************==="

<

(i,j)=10

;//dot

cout<<

"i= "

<

cout<<

"j= "

<

return0;

}

1.2.3 過載逗號操作符

class

&operator,(

const

class

&a,const

class

&b)

1.2.4 示例**

1.2.5 問題的本質分析

c++通過函式呼叫擴充套件操作符的功能

進入函式體前必須完成所有引數的計算

函式引數的計算次序是不定的

過載後無法嚴格從左向右計算表示式

1.4 型別轉換函式上

1.4.1標準資料型別轉換

short  s =

'a';

cout<<

"sizeof(s + 'b') = "

<<

sizeof

(s+'b'

)<

//結果是4 ,意外不?

1.4.2 思考

1.4.3 再論建構函式

1.4.4 舊式的c語言強制型別轉換

1.4.5 避免自動轉換方法

1.5 型別轉換函式下

1.5.1 問題

1.5.3 類型別之間的相互轉換

型別轉換函式 vs 轉換建構函式

型別轉換函式 和 轉換建構函式 是互逆的

1.5.4 結論

using

namespace std;

class

test

;class

value

value

(test&t)};

class

test

intvalue()

value tovalue()

// 公有成員代替型別轉換函式};

intmain()

1.5.5 qt中通過共有函式進行型別轉換

int

main()

perl高階排序, 操作符,飛船操作符

按照要求進行的排序 複製 如下 bin perl number qw 5 10 15 3 2 4 8 6 my descending s number 這裡 a 5,b 10,因為 a在前,perl得到的結果是小數在前,也就是公升序排列 print descending n 結果如下 f perl ...

C 之操作符過載

1.所謂過載,就是賦予其新的意義。函式可以過載,操作符也可以過載。操作符的過載給我們的程式設計帶來了很大的便利,因為操作符只能對基本的資料型別進行操作,而對使用者自定義的類等資料結構型別不支援。因此只能對其操作符進行過載之後,才能更加方便地操作我們自定義的類物件等資料型別。但是值得注意的是並不是c ...

c 之操作符過載

include using namespace std class complex void printcom test add2 test t2 this 函式返回元素 complex operator complex c1 complex operator complex operator in...