C C 過載操作符(二) 過載操作符

2021-09-10 17:06:56 字數 1988 閱讀 5952

用於訪問一組元素中的乙個元素。預設的,陣列是支援下標訪問的。

中的下標稱為:索引,key,唯一標誌符

當乙個物件設計用於包含多個元素時,可以過載操作符

比如乙個字串text包含多個元素(每個元素是乙個字串)

text txt(「helloworld」);

char ch = text[0];

比如在乙個datastore裡面儲存多個student的記錄。

datastore ds;

student& st = ds[「xiaoming」];

過載操作符的一般形式

element& opeartor

(1)opeartor是不變得

(2)返回值:一般應該返回乙個子元素的引用,這樣可以作為乙個左值,可讀可寫。

(3)引數:型別可以自己選擇,用於指定元素的下標。

示例一 :

#include

#include

#include

class text

~text()

char

& operator(

int index)

public:

int m_size;

char

* m_buf;};

intmain()

示例二:

#include

#include

#include

#include

"datastore2.h"

intmain()

; ds.

add(

&s1)

; student s2=

; ds.

add(

&s2)

; ds.

print()

; student& st = ds[

"xiaoming1"];

if(st.id >0)

student& ttt = ds[

201502];

if(ttt.id >0)

return0;

}

#include

#include

#include

#include

"datastore2.h"

student datastore:

:null_one =

;datastore:

:datastore()

datastore::~

datastore()

}student& datastore:

:operator (

const

char

* name)

p = p->next;

// 下乙個物件

}//return null;

return null_one;

}student& datastore:

:operator (

int id)

p = p->next;

// 下乙個物件

}return null_one;

}void datastore:

:add

(const student* data)

// 插入到pre節點的後面

copy->next = pre->next;

pre->next = copy;

}student* datastore:

:find

(int id)

return

null;}

void datastore:

:print()

}

struct student

;class datastore

;

9 過載操作符

include includeusing namespace std class num void print 也可以在內部提供乙個 號操作符過載,但和全域性 號過載如果呼叫方法一致,就只能存在乙個 num operator num other 過載 是修改自身,不能返回新物件,所以要返回自身引用 ...

6 過載操作符(operator)介紹

operator 是c 的乙個關鍵字,它和運算子 如 一起使用,表示乙個運算子過載函式,在理解時可將operator和運算子 如operator 視為乙個函式名。使用operator過載運算子,是c 擴充套件運算子功能的方法。使用operator擴充套件運算子功能的原因如下 對於c 提供的所有操作符...

操作符過載 二

一,操作符過載案例之字串 1.前言 2.字串類的功能 string.h pragma once include using namespace std 建構函式 string str1,string str2 王剛 string str3 str2 成員函式 length c str 操作符 cla...