在C++中,當我使用多級指針時,是否使用typedef來簡化它?在C++中,當我使用多級指針時,是否使用typedef來簡化它是一種好方法?
回答
是的,增加代碼可讀性是一個好習慣。
讓狀態您有:
class Foo
{
public:
Foo(const myotherlib::x509::certificate& cert);
private:
myotherlib::x509::certificate m_cert;
}
這是的typedef的東西一點點是個好主意:
class Foo
{
public:
typedef myotherlib::x509::certificate cert_type;
Foo(const cert_type& cert);
private:
cert_type m_cert;
}
這增加了代碼的可讀性和有整齊的副作用,如果你曾經更改基礎證書類,您只需更改typedef
。
並回答更完全,同樣的規則可能適用於「多層次」的指針:如果你真的是書面方式Foo***
所有的地方它確是一個好主意,讓事情更易讀,typedef
是這是一個很好的工具。
如果有一天您決定用具有相同語義的類替換您的Foo***
,那麼更改將不僅僅在您的代碼中,而且在任何使用您的代碼的客戶端代碼中也是微不足道的。
Downvoter,謹慎地闡述?我從不低估報復(就像我的個人資料顯示的那樣),請繼續。 – ereOn 2011-04-27 06:16:30
我猜downvoter認爲你沒有回答這個問題:你解釋了命名空間中的typedefing類型可能是有用的,但問題是關於多級別的指針: typedef Foo ** FooPtrs; – 2011-04-27 07:25:07
@安德爾:是的,可能就是這樣。但是,我的答案確實在談論多級指針,而不是立即。對我而言,typedef的使用對於長類型名稱更有意義,這就是爲什麼我首先選擇了這個例子。也許這確實是一個錯誤的選擇。不知道它值得downvote然而(它不像我的答案本質上是錯誤的)。感謝您的反饋。 – ereOn 2011-04-27 07:41:13
是的,將它定義爲typedef總是個好主意。例如,現在
typedef int* intp;
typedef int** intpp;
,如果你的代碼確實是有組織的,那麼你可以簡單的typedef更改爲使用自定義或任何其他的智能指針。例如
typedef auto_ptr<int> intp;
這可能是調試的好方法。
只記得爲不同的指針使用不同的typedef。也就是說,把第二個intp改成別的東西。 – mdec 2011-04-27 06:18:34
- 1. 這是在C++中使用指針的好方法嗎?
- 2. 在C中釋放空指針是否是一種好的做法?
- 3. 如何用C++ 11使用語法typedef方法指針?
- 4. Ogre是否使用Exceptions是使用它們的好方法?
- 5. 是否正在使用AWS SDK來啓動實例和aws cli來管理它是一種好方法?
- 6. 在C中使用typedef和指針來實現堆棧
- 7. 用「使用」來引用特定項目是否是一種很好的做法?
- 8. 是否使用指針
- 9. 什麼是最好的方法:實例化一個對象或使用指針
- 10. 在Perl中使用多繼承時,是否有一種方法可以指示要使用哪個SUPER函數?
- 11. PHPUnit:在一個測試中對模擬方法使用多個斷言是否是一種不好的做法?
- 12. 在使用它的多個文件中共享一個dao是否是一種很好的做法?
- 13. 使用一種方法來初始化
- 14. 抽象使用的API是否是一種好的做法?
- 15. 是否總是在DAL基類中使用TransactionScope是一種好的做法?
- 16. 當不同線程使用Web方法時,是否是一種很好的做法?
- 17. typedef指針在C
- 18. 是否有一種更習慣的方式來替換指針?
- 19. 有沒有一種簡單的方法來檢查對象是否可以在python中使用JSON序列化?
- 20. 當調用超級方法時,我指的是什麼?
- 21. 在另一種方法的參數列表中調用方法是否是Java中的一種良好做法?
- 22. 當使用指針用C
- 23. 使用.NET HttpClient類時,是否有一種簡單的方法來格式化查詢字符串?
- 24. 使用指針初始化C++類是否安全?
- 25. 有一種方法來初始化指針在C的陣列(在同一行)
- 26. 與NSubstitute使用同一方法是否允許多種安排?
- 27. 當使用Nuget時,是否有一種簡單的方法可以關閉多個語言包?
- 28. 當我調用UITableView reloadData方法時,是否需要使用@synchronized?
- 29. 如何用C++ 11使用語法typedef函數指針?
- 30. 使用pgTAP框架測試postgresql函數是否是一種好方法?
只是爲了更可靠地回答:什麼是「多層次」指針? – ereOn 2011-04-27 06:07:44
like ** p,*** p /// – user658213 2011-04-27 06:08:41