如果我有一個返回值,我使用訪問其他對象的指針的成員函數...返回const int的*和回訪const int的*參考
什麼是優化我的代碼的最佳方式?我應該返回const int*
還是const int*&
?
編輯。我的意思是:返回指針是否涉及副本?會返回一個對編譯器易於優化的指針的引用嗎?我不返回的值賦給任意變量:
my_object.get_ptr()->function();
如果我有一個返回值,我使用訪問其他對象的指針的成員函數...返回const int的*和回訪const int的*參考
什麼是優化我的代碼的最佳方式?我應該返回const int*
還是const int*&
?
編輯。我的意思是:返回指針是否涉及副本?會返回一個對編譯器易於優化的指針的引用嗎?我不返回的值賦給任意變量:
my_object.get_ptr()->function();
這些信息我不知道怎麼會是一個優化兩種方式。我會選擇讓你的代碼更易於理解和修正的方式。看看下面的內容。 http://markgodwin.blogspot.com/2009/08/c-reference-to-pointer.html
很明顯,有一段時間必須使用指針的引用(反之亦然)才能使程序正確!但是,在這種情況下,在按值傳遞和按引用傳遞之間進行選擇並不是一個真正的優化問題。哪種方式會導致你期望的行爲?
指針和引用的大小相同,因此should't關係(這也是,在我看來,小的東西操心)
。繼承人的鏈接我從 What are the differences between a pointer variable and a reference variable in C++?
它只是整數。您想要優化的開銷是多少? 'const int *'很好很簡單 – theAlias
這些是非常不同的類型。在一種情況下,它是一個指向「int」的指針,您不能修改權限。在另一種情況下,讀取或修改其他地方存儲的指針指向'int'的指針是正確的,即其他地方的存儲器無權修改。幾乎沒有什麼情況下這些選擇之間的差異是「哪個更快」。這就好比問:「修剪指甲的哪個地方更好,火箭船還是潛艇?」 – Yakk
忘記優化,強調健壯性,正確性和質量。您的優化類型是「微優化」,與設計或更大的優化相比,優化的影響可以忽略不計。在擔心這些優化之前,請使用分析器。 –