あるクラスの変数に別のクラスにアクセスして、ある値に設定したいとします。ここのコードのように、some_flag
をのtrue
に設定します。出来ますか?はいの場合、それを行う方法?システムアーキテクチャへC++で無関係の関数から変数にアクセスする
制約:
- 2つのクラスが継承できません。
- 2つのクラスは関連していません。
secondClassFunction()
の機能シグネチャは変更できません。
ここでコードスニペットです: -
#include <iostream>
using namespace std;
class FirstClass{
bool some_flag;
public:
void setFlag(bool flag);
bool getFlag();
};
FirstClass::FirstClass(){
some_flag(false);
}
class SecondClass{
public:
void secondClassFunction();
}
SecondClass::secondClassFunction(){
// do something here.
// I want to access some_flag using SecondClass object.
// how to do this?
}
int main() {
SecondClass secObj;
secObj.secondClassFunction();
return 0;
}
はクラスが助けラッパーのでしょうか?はいの場合、どうですか?
編集: -
制約4.クラスフレンド機能を作成できません。
制約事項5.フラグ変数をグローバル化できません。
詳細: -
flag
はFirstClass
のメンバーである関数に設定されています。 のメンバーであるこの機能をflag
にリセットします。 2つのクラスは継承されず、システムアーキテクチャの制約のためにアクセス指定子を変更できません。
flag
は、プロセッサがモバイルアプリケーションから特定のコマンドを受信したかどうかなど、アクティビティのステータスを示すために複数のタスクによって使用されるセマフォのようなものです。
を呼び出す前に、適切かつ有効なインスタンスを持っていることを確認してください。 –
@sleeptightpupperいいえ、「友人」はあなたの敵*です。適切なデザインはあなたの友人です。 –
オブジェクトの 'some_flag'にアクセスしたいですか? –