0

質問を説明できるすべての用語をそのまま持っているかどうかはわかりませんが、疑問に思っていることを説明する方法は次のとおりです。

クラス A と、そのメソッドで A からのデータを使用する 2 番目のクラス B があるとします。

class A
     {
     data1
     data2
     etc...
     }

class B
     {
     some_data
     method1 
           {
           // do stuff with some_data and A.data1, A.data2
           }
     method2 
           {
           // do other stuff with some_data and A.data1, A.data2
           }
     }

私が興味を持っているのは、一般論として、次のようなことを行う方が良いと考えられるかどうかです。

class B
     {
     B(A *a) 
           {
           this->a_ptr = a;
           }
     A *a_ptr

     some_data
     method1()
          { 
          // do stuff with a_ptr->data1, a_ptr->data2
          }
     method2()
           {
           // do other stuff  with a_ptr->data1, a_ptr->data2
           }
     }

2.

class B
     {
     some_data
     method1(A *a)
          { 
          // do stuff with a->data1, a->data2
          }
     method2(A *a)
           {
           // do other stuff  with a->data1, a->data2
           }
     }

どのアプローチを使用するかについてコンセンサスはありますか? もしそうなら、あるアプローチを他のアプローチよりも好む理由は何ですか?

4

2 に答える 2

0

MrLister がコメントしたように継承されたものに作り直します。それ以外の場合、方法 1 にはオブジェクトの所有権の問題があります。それが不可能な場合は、方法 2 を使用しますが、オブジェクトを明確にするためにmethod(A &a)(またはmethod(const A &a)それが意図されている場合は) 変更する必要があります。

于 2013-07-31T19:44:02.423 に答える