2017-12-03 2 views
-1

Ich muss eine Klasse erstellen, die eine Datei öffnen und schreiben kann, aber ich habe eine Menge Ärger. Ich habe gesucht und Antworten gefunden, die mir hätten helfen sollen, aber ich konnte sie nicht umsetzen. Ich kann die Datei erstellen, kann aber nicht auf main zugreifen. Sagen wir, ich habe eine Klasse:Wie Objekt für den Rest der Klasse zugänglich machen

class Log{ 
    public: 
    Log(string name){ 
    ofstream log(name); 

    void Entry(string message){ 
     file << message << endl; 

und ich möchte auf diese Datei im Konstruktor von Haupt mit der Entry-Funktion erstellt, um drucken können.

int main(){ 
Log log("LogFile.txt); 
log.Entry("message"); 
} 

Natürlich ist meine Fstream-Datei nicht im Bereich von Entry. Wie kann ich darauf zugreifen? Ich habe versucht, einen Zeiger zu verwenden und endete mit einem Speicherverlust Crash; Ich bin gerade sehr rostig. Jede Hilfe würde sehr geschätzt werden. Vielen Dank im Voraus.

Antwort

0

Um Ihr Problem zu beheben, müssen Sie eine Instanzvariable in Ihrer Klasse verwenden.

So würde Ihre Klasse:

class Log{ 
    ofstream log; 
    public: 
    Log(string name){ 
    log.open(name); 

    void Entry(string message){ 
     file << message << endl; 

Hoffnung, das hilft.

Verwandte Themen