假設我們有一個靜態創建的對象(Type mObject;
),它使用getObject()方法向程序員公開。我想知道以這種方式獲取對象有什麼優點和缺點?使用指針和引用獲取對象
Type* SomeClass::getObject() {
return &mObject;
}
// the programmer types
Type* obj = someClassObj.getObject();
obj->someMethod();
和這樣:
Type& SomeClass::getObject() {
return mObject;
}
// the programmer types
Type& obj = someClassObj.getObject();
obj.someMethod();
以前的API幾乎鼓勵程序員在完成對象時調用delete,或者至少讓他想知道如何清理。 –
在第一種情況下,您必須記錄誰擁有返回的指針,並希望客戶閱讀文檔。請注意,兩者都具有常量正確性問題。 – juanchopanza
在第一種情況下,你可以返回NULL,所以調用者需要檢查這個。 – spiritwolfform