Zuvor würde ich die Adresse von fstream-Objekten an alle Funktionen übergeben, einschließlich des Konstruktors, die E/A-Operationen ausführen. Aber ich möchte versuchen, fstream-Objekte als Membervariablen verfügbar zu machen, damit alle nachfolgenden I/O-Operationen diese Variablen verwenden können, anstatt sie als Argumente übergeben zu lassen.Wie kann ich ein Stream-Objekt als Membervariable verwenden?
das folgende Java-Programm vor:
public class A {
Scanner sc;
public A(Scanner read) {
sc = read;
}
}
Was wäre die C++ Äquivalent sein? Ich habe versucht, diese
class A {
ofstream *out;
public:
A (ofstream &output) {
out = output;
}
};
tun, aber das gibt mir einen Kompilierungsfehler:
[Error] invalid user-defined conversion from 'std::ofstream {aka std::basic_ofstream}' to 'std::ofstream* {aka std::basic_ofstream*}' [-fpermissive]
Sie können einem Zeiger keine Referenz zuweisen. Das sind verschiedene Dinge. – tkausl
_ "Aber das gibt mir einen Kompilierungsfehler." _ Spezifizieren Sie sich über Kompilierungsfehler. Poste bitte [MCVE]! –
Auch Sie fragen nach der Ausgabe, nicht für die Eingabe wie _scanner_ würde bedeuten. –