用於訪問一組元素中的乙個元素。預設的,陣列是支援下標訪問的。
中的下標稱為:索引,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...