我有一個很深的C經驗,但我是一個C++初學者。引用似乎比指針更易於使用,但它使我發瘋。我認爲所有的引用都可以用指針來代替。就我而言,指針並不難,因爲我花了很多時間來研究它們。在C++程序員中使用引用是否很常見,或者只是推薦?我是否必須在C++中使用引用?
-2
A
回答
1
引用阻止的一件事是指針NULL
。如果你想確保傳遞給函數的參數不是NULL,你可以通過引用傳遞。
void func(int& i); // i cannot be NULL
1
參考不能總是由指針代替:
C a, b, c;
a = b - c;
如果沒有爲C
的operator-()
,它要麼需要接收它的參數:通過複製
:
C operator-(C left, C right);
由地址:
C operator-(C* left, C* right);
在這種情況下,呼叫變爲:
a = &b - &c;
(已具有在C語言的意思)
或通過使用具有一個新的構建體在C中沒有等價物。這成爲C++中的參考。
還有的questions一個variety可以refer到concerning使用與指針引用。
相關問題
- 1. 如果我使用EntityFramework,是否必須在ViewModel中引發PropertyChanged?
- 2. 我是否必須使用onPause/onStart/onDestroy
- 3. 我是否必須使用UNION insted JOIN?
- 4. 是否必須使用SSL?
- 5. 我們在使用會話時是否必須使用mysql_real_escape_string()?
- 6. 我是否必須在我的索引中包含auto_increment?
- 7. 我是否必須在每個類中使用「包」術語
- 8. 我是否必須在ASP.NET中使用Viewstate
- 9. 在C++中通過引用傳遞參數是否必須是手動的?
- 10. 我是否必須在objective-c ios編程中使用非原子屬性?
- 11. 我是否必須在Objective C中使用點符號來訪問結構值?
- 12. 我是否必須使用Compass使用Django-Grappelli修改CSS?
- 13. 在TClientDataSet中使用Locate時,是否必須使用Disable/EnableControls?
- 14. 是否必須在證書中使用keyusage?如果使用jdk7
- 15. ANSI C在創建結構時是否必須使用malloc()?
- 16. 是否ORDER BY列必須是索引
- 17. 是否必須使用「remember_token」字段?
- 18. 是否必須使用flags屬性?
- 19. 分配時是否必須使用initWithString?
- 20. Bootstrap Carousel是否必須使用圖像?
- 21. Mercurial Server是否必須使用Mercurial?
- 22. 在Core Foundation中,是否必須僅使用引用訪問對象?
- 23. 我在使用AdMob時是否必須擁有IDFA?
- 24. 我是否必須在動作循環中使用「xxforms:evaluate」來使用迭代器?
- 25. 我們是否必須在SpringBoot中使用JPA時使用Left Join查詢?
- 26. 在C#中,我是否必須執行顯式上傳?
- 27. 我是否必須在Objective-C for iOS中保留塊?
- 28. 我是否必須使用ComPtr調用釋放函數?
- 29. 是否必須在應用程序模板中使用{{outlet}?
- 30. 我是否必須處理我不使用的返回對象?
IMO引用vs指針是一個樣式問題,因此沒有正確的答案。 – immibis
在某些情況下(如複製構造函數和一些重載操作符),引用是必需的。但是如果你確實知道指針,我不明白爲什麼它是一個問題。 – deviantfan