Re: [問題] 請問關於static的用法
※ 引述《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
05/27 18:16, 1F
推
05/28 10:21, , 2F
05/28 10:21, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章