Ich möchte auf eine Variable einer Klasse in eine andere Klasse zugreifen und auf einen Wert festlegen, z. Wie im Code hier möchte ich die some_flag
auf true
in der secondClassFunction()
setzen. Ist es möglich? Wenn ja, wie geht das?Zugriff auf eine Variable aus einer nicht verwandten Funktion in C++
Einschränkungen aufgrund Systemarchitektur:
- Die beiden Klassen sind nicht vererbbar.
- Die beiden Klassen sind auch nicht verwandt.
- Die Funktionssignaturen
secondClassFunction()
können nicht geändert werden.
Hier ist der Code-Schnipsel: -
#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;
}
Wird Klassen-Wrapper helfen? Wenn ja, wie?
EDIT: -
Constraint 4. Kann nicht die Klassen friend-Funktionen machen.
Einschränkung 5. Die Flag-Variable kann nicht globalisiert werden.
Details: -
Die flag
wird in einer Funktion gesetzt, die ein Mitglied von FirstClass
ist. Ich möchte dieses flag
in einer Funktion zurücksetzen, die Mitglied der SecondClass
ist. Die beiden Klassen sind nicht vererbbar und ihre Zugriffsbezeichner können aufgrund von Einschränkungen der Systemarchitektur nicht geändert werden.
Die flag
ist wie ein Semaphor, es wird von mehreren Aufgaben verwendet, um den Status einer Aktivität anzuzeigen, z. B. ob der Prozessor einen bestimmten Befehl von einer mobilen App erhalten hat oder nicht.
'friend' Aufruf ist dein Freund. –
@sleeptightpupper nein, 'Freund' ist dein * Feind *. Das richtige Design ist dein Freund. –
Sie möchten auf 'some_flag' von welchem Objekt zugreifen? –