看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
chrisdar:推+1 05/27 18:16
MOONRAKER:贊 05/28 10:21