Re: [問題] 請問關於static的用法

看板C_and_CPP (C/C++)作者 (Alien)時間16年前 (2009/05/27 18:05), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《jijuan (雞卷)》之銘言: : 因為class可直接用::運算子使用static成員 : 有三個物件A、B、C : C中有一個函式名為myFcn : 1.若將myFcn定義為一個static函式 : 在A、B中只要C::myFcn()就能夠使用 : 2.若myFcn並非static函式 : 則A、B必須建立一個C物件才能夠使用myFcnc函式 : 在這兩種情況下,(1) 沒有建立任何C物件 (2) 則建立了兩個C物件 : 就資源的使用上是不是(2) 浪費了更多記憶體呢? : 另外若myFcn函式中會使用到vector,而這個vector的大小並非固定的 : 也就是說這次可能是大小為10,另一次可能是大小為60 : 是不是就無法將myFcn定義為static : 我本來是打算這樣用 : myFcn(int size) { : myVector.resize(size); : . : . : } : 但是編譯過不了,這是因為myVector因為也是static,所以只能在定義時初始化一次嗎 我覺得你是本末倒置的思考 什麼要不要生成 object 才能用, 什麼記憶體用量, 從來都不該是決定某 method 是 static 與否的 根據. 你應該是要設計了 class, 然後某 method 是要針 對本身 object instance 來工作的, 就該是 instance method. 反之則是 static method. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

05/27 18:16, , 1F
推+1
05/27 18:16, 1F

05/28 10:21, , 2F
05/28 10:21, 2F
文章代碼(AID): #1A7H1NPF (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A7H1NPF (C_and_CPP)