4

次のコードを検討してください。

#include <iostream>

struct B {
    void bar() {
        std::cout << "I feel used\n";
    }
};

struct A {
    B& b;
    A(B& b_) : b(b_) {} // take and keep a reference to the object passed in
    void foo() {
        b.bar(); // potentially change the state of b
    }
};

int main() {
    B b;
    A a(b);
    a.foo(); 
}

のコンストラクターはパラメーターとしてAへの参照を取り、参照を通じてそのメンバー関数での状態を変更します。bAb

私の質問:

  • そうすることは良い習慣と考えられますか?
  • 長所/短所は何ですか?
  • 代替案は何ですか?
4

3 に答える 3

1

ここで説明することは、技術的な側面C++(または別の言語) よりも設計と密接に関係しており、 で呼び出さdependencyUMLます。これは一般的な方法であり、他の手法と同様に、使用前に適切な分析を適用して、問題の解決策に本当に適合するかどうかを理解する必要があります。詳細と使用例については、こちらをご覧ください。

于 2013-07-08T21:40:46.353 に答える