推 iamstudent :其實是因為擔心其他人把那個Data的class拿去用 04/23 20:21
→ iamstudent :雖然算是多餘的煩惱,不過code放那邊 04/23 20:22
→ iamstudent :就會多出一個class出來,也許看的人就會以為可以用 04/23 20:22
ok 我了解你的疑慮了XDDDD
不過關於這檔事,你還少考慮了一個點。
如我上面那個範例,State class 別人也可以自己隨便建立阿,
但是只有透過BigClass建立的 State 才能拿到正確的 Data,對吧。
Data也是一樣,Data裡面裝什麼是一回事,誰建立他又是另一回事 !!!
如果我這樣寫
class BigClass {
private:
Data * data;
initData(Data * data) { /*初始化data資源*/ }
public:
BigClass() {
initData(this->data);
}
};
只有 BigClass 內部的那個 Data 才能獲得正確的初始化,
其他地方自己建立的 Data,都只是個有名無實的空殼。
這樣算不算管好使用資源的權限了呢?