3 3 將實值物件改為引用物件

2021-09-07 14:03:57 字數 2078 閱讀 9852

源**

1 #include 2

class

customer39

10qstring getname()

1114

15private:16

qstring m_name;

17};

1819

class

order

2026

27qstring getcustomername()

2831

32void

setcustomer(qstring customername)

3336

37private

:38 customer *m_pcustomer;

39};

4041

static

int numberofordersfor(qlistorders, qstring customer)

4252}53

54return

result;

55 }

到目前為止,客戶customer物件還是值物件value object。

即就算多份訂單屬於同一客戶,但每個訂單order物件還是擁有各自的客戶customer物件。

我希望改變這一現狀:使得一旦發現同一客戶擁有多份不同的訂單,那麼所有這些訂單order物件只可以共享同乙個客戶customer物件。

將實值物件改為引用物件

1 #include 2

class

customer39

10qstring getname()

1114

15private:16

qstring m_name;

17};

1819

class

order

2027

28int

getid()

2932 customer*getcustomer()

3336

37private:38

intm_nid;

39 customer *m_pcustomer; //

引用物件

40};

4142

class

customerlist

4349

50 customer *getbyname(qstring name)

5159 ++iter;60}

61customer(name));

63return

(m_pcustomerlist.back());64}

6566

private:67

void

loadcustomers()

6873

74private

:75 qlistm_pcustomerlist;

76};

7778

79int main(int argc, char *ar**)

8096

97return

a.exec();98}

99100

//run out:

101/*

102order id :: 1 customer :: 0x206348

103order id :: 2 customer :: 0x206250

104order id :: 3 customer :: 0x206a28

105order id :: 4 customer :: 0x206348

106order id :: 5 customer :: 0x206250

107order id :: 6 customer :: 0x206a28

108order id :: 7 customer :: 0x206da8

109*/

總結

從乙個類衍生出許多彼此相等的例項,希望將它們替換為同乙個物件。將這個值物件變為引用物件。

good good study, day day up.

順序 選擇 迴圈 總結

將引用用於類物件

將引用用作類物件,常用的做法是使用引用。例如 includeusing namespace std string version 1 const string s1,const string s2 接收兩個string引數這兩個引數 const string version2 string s1,c...

PHP物件傳值 引用傳值

物件傳值本質上是引用傳值,將乙個物件變數 a 賦值給另個變數 b 實際上是將 a儲存的物件記憶體引用位址賦值 b,此時兩個變數指向的就是乙個物件。其中乙個變數傳送改變,另乙個也會跟著改變。和引用變數乙個道理。1.物件傳值示例 物件傳值本質上就是引用傳值 a new user b a 物件傳值 var...

session未將物件引用設定到物件的例項

使用session的方法應該說很簡單,在乙個頁面賦值,另乙個頁面呼叫就可以了。自己在編制程式時犯了乙個大錯誤,即語句的順序搞倒了,如 session username namebox.text response.redirect shuru.aspx 先賦值再轉頁,而我剛開始是反過來寫了,那 麼se...