ofstream Objekt im Konstruktor als Parameter



  • Warum geht das hier nicht:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    
    class write
    {
        write(const ofstream &file_);
    
        private:
        ofstream m_file;
    
    };
    
    write::write(const ofstream &file_)
    :m_file(file_)
    {
    
    }
    
    int main()
    {
    
        return 0;
    }
    

    Compiling: C:\MinGW\Andi\text_edit.cpp
    C:\MinGW\Andi\text_edit.cpp: In copy constructor std::basic\_ios<char, std::char\_traits<char> >::basic\_ios(const std::basic\_ios<char, std::char\_traits<char> >&)': c:/mingw/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/ios\_base.h:781: error:std::ios_base::ios_base(const std::ios_base&)' is private
    C:\MinGW\Andi\text_edit.cpp:17: error: within this context
    C:\MinGW\Andi\text_edit.cpp: In copy constructor std::basic\_filebuf<char, std::char\_traits<char> >::basic\_filebuf(const std::basic\_filebuf<char, std::char\_traits<char> >&)': c:/mingw/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/streambuf:769: error:std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
    C:\MinGW\Andi\text_edit.cpp:17: error: within this context
    Process terminated with status 1 (0 minutes, 0 seconds)
    4 errors, 0 warnings

    MfG
    Stromberg



  • Man kannst du nicht lesen? Dein Compiler weist die deutlich darauf hin, das der Kopierkonstruktor von std::ofstream private deklariert ist. Müssen wir dir hier auch noch die Fehlermeldungen vorlesen?

    Zur Lösung des Problems musst du in Zeile 11 ein '&' ergänzen. Kannst ja mal ausprobieren wo genau.


Anmelden zum Antworten