2017年6月15日 星期四

什麼時候必須要用到指標

什麼時候必須要用到指標

很多時候會遇到必須使用指針的情況,舉例來說以下兩個降低依存關係的技巧,才不用動一個一個地方整份專案重編。
  • Handle Class
  • Protocol Class
實際上應該還有很多場合不得不用,或使用會更好。
舉個簡單的例子,考慮一個互相依存的類別,雙方彼此都要有雙方
struct A{
    B b;
};
struct B{
    A a;
};
這時候你怎麼辦呢在類別A內找不到B的定義沒但法實作
舉兩個簡單手段避開依存關係
  • vector (或一個設計良好自訂的容器)
  • 指針
struct B; // 前置宣告
struct A{
    B* b;
};
struct B{
    A a;
};
struct B; // 前置宣告
struct A{
    vector<B> b;
};
struct B{
    A a;
};
其中的前置宣告,也可以使用詳細的型別說明符(Elaborated type specifier)取代
struct A{
    struct B* b;
};

沒有留言:

張貼留言