Tronar
aus Überzeugung altmodisch
Hallo!
Nikolaus ist vorbei, heute herrscht wieder der Ernst des Arbeitslebens. Folgende Situation:
Ich habe hier den Quellcode eines größeren Programmpakets, soll aber keine großen Änderungen daran vornehmen, nur kleine Ergänzungen. (Mit meiner geringen Programmiererfahrung traut man mir da nicht so recht :-) )
Was ich will, ist, eine Klasse davon für ein spezielles, selbstgeschriebenes Testprogramm zu verwenden. Dieses habe ich in einer separaten Datei stehen, darin wird eine Instanz der Klasse erzeugt, aber leider kann ich nicht auf die privaten Daten des Objekts zugreifen. Dazu müßte man im besagten Programmpaket Unmengen Get- und Set-Methoden anbringen, und für einige dieser Daten ist das ausdrücklich nicht erwünscht.
Deshalb dachte ich an eine "friend"-Funktion. Ich habe also im Programmpaket eine Zeile hinzugefügt: friend void access_Radiator_class ();
Das Programmpaket läßt sich auch mühelos kompilieren. Aber mein Programm mit der Implementation dieser Funktion haut mir der g++ um die Ohren, von wegen, diese und jene Variable sei "private" und ich hätte ja überhaupt kein Recht zu gar nichts.
Ist "friend" eventuell gar nicht dateiübergreifend einsetzbar? Oder was ist los?
Stillt meinen Wissenshunger!
Tronar
Nikolaus ist vorbei, heute herrscht wieder der Ernst des Arbeitslebens. Folgende Situation:
Ich habe hier den Quellcode eines größeren Programmpakets, soll aber keine großen Änderungen daran vornehmen, nur kleine Ergänzungen. (Mit meiner geringen Programmiererfahrung traut man mir da nicht so recht :-) )
Was ich will, ist, eine Klasse davon für ein spezielles, selbstgeschriebenes Testprogramm zu verwenden. Dieses habe ich in einer separaten Datei stehen, darin wird eine Instanz der Klasse erzeugt, aber leider kann ich nicht auf die privaten Daten des Objekts zugreifen. Dazu müßte man im besagten Programmpaket Unmengen Get- und Set-Methoden anbringen, und für einige dieser Daten ist das ausdrücklich nicht erwünscht.
Deshalb dachte ich an eine "friend"-Funktion. Ich habe also im Programmpaket eine Zeile hinzugefügt: friend void access_Radiator_class ();
Das Programmpaket läßt sich auch mühelos kompilieren. Aber mein Programm mit der Implementation dieser Funktion haut mir der g++ um die Ohren, von wegen, diese und jene Variable sei "private" und ich hätte ja überhaupt kein Recht zu gar nichts.
Ist "friend" eventuell gar nicht dateiübergreifend einsetzbar? Oder was ist los?
Stillt meinen Wissenshunger!
Tronar