假設我有一個名爲MyClass的類,我正在編寫一個函數,該函數應返回Myclass類型的對象。該對象在調用該函數之前已經存在。所以通常我會做:返回指向類的指針的函數
MyClass function() {
return MyClassInstance;
}
但後來我想起了指針和引用,我認爲這樣做會造成MyClassInstance的新副本,並返回它,這是浪費內存。所以我想,爲什麼不這樣做:
MyClass * function() {
return &MyClassInstance;
}
那麼結果可能是訪問,
Myclass * object;
object = function();
object->"class member"...
它是正確的嗎?
我不確定我明白你的意思。你能提供一些細節嗎? – jazzybazz 2013-03-13 02:59:48
你寫的代碼沒有問題。但是你需要知道你想要做什麼。如果你只是想通過另一個指針引用同一個對象,而不是改變原始對象的值,或者只是假設你改變了它的值。那麼這就是完美的方式。因爲它可以通過使用指針來節省內存。如果你需要一個新的物體,那麼這種方式可能是有害的。因爲會有兩個指針指向唯一的一個對象。通過使用任何指針的任何更改都會影響對象的狀態。你需要保持這種狀況。我是否清楚地表達了自己? – YXHJ513 2013-03-13 03:17:25
是的,非常感謝。 – jazzybazz 2013-03-13 03:23:18