Zugriff auf geschützte Memberfunktionen über Testcode in C ++
Ich habe mir den Kopf zerbrochen, um herauszufinden, wie ich mit einem Testcode in C ++ am besten auf eine geschützte Member-Funktion zugreifen kann. Hier ist mein Problem:
//in Foo.h
Class Foo
{
protected:
void DoSomething(Data data);
}
//in Blah.h
Class Blah
{
public:
Foo foo;
Data data;
};
//in test code...
Blah blah;
blah.foo.DoSomething(blah.data); // Here's my problem!
Einige mögliche Lösungen:
Machen Sie die Testcode-Klasse zu einem Freund von Foo, aber dies verschmutzt Foo mit TestcodeMach DoSomething zu einer öffentlichen FunktionIch habe mir überlegt, einen Test-Wrapper für Foo zu erstellen, wie in empfohlendieser BeitragDies wird jedoch nicht funktionieren, da Blah die Instanz von Foo enthält.Alle Ratschläge / Einblicke / Meinungen sind herzlich willkommen!
Vielen Dank