Hallo Ich frage mich, warum C++ - Standard uns in geschachtelten Klassen erlaubt, auf private Felder der äußeren Klasse zuzugreifen, während es verbietet, auf private Felder der inneren Klasse von der äußeren Klasse zuzugreifen. Ich verstehe, dass dieses Beispiel:C++ Äußerer Klassenzugriff Innere Klasse ist privat - Warum verboten?
class OuterClass{
public:
class InnerClass{
public:
void printOuterClass(OuterClass& outer) {cout << outer.m_dataToDisplay;};
};
private:
int m_dataToDisplay;
};
ist in Ordnung, weil Ding, dass innere Klasse manchmal kompliziert sein kann. Aber ich denke, Szenario finden Sie auch in Ordnung:
class Algorithm{
public:
class AlgorithmResults{
public:
void readAlgorithmResult();
private:
void writeAlgorithmResult();
};
void calculate(AlgorithmResults& results, Arguments...){
//calculate stuff
results.writeAlgorithmResult(results);
}
};
Für mich ist diese Struktur durchaus Sinn macht, obwohl es nicht in C++ erlaubt ist. Mir ist auch aufgefallen, dass für einige Zeit beide in Java erlaubt waren, aber jetzt ist auch ein zweites Beispiel verboten. Was ist der Grund, dass das erste Beispiel erlaubt ist und ein anderes verweigert wird?
Sorry, ich invertierte die Freundschaft und musste reparieren. Dies ist ein weiterer Beweis dafür, dass Kaffee benötigt wird, bevor er auf SO! –