Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: jankowalski25
Język C++

basic_ostream::basic_ostream

[konstruktor] Tworzy obiekt tej klasy.

Składnia

C/C++
#include <ostream>

namespace std
{
    template < class CharT, class Traits = std::char_traits < CharT > >
    class basic_ostream
        : virtual public std::basic_ios < CharT, Traits >
    {
    public:
        explicit basic_ostream( std::basic_streambuf < CharT, Traits >* sb );
    protected:
        basic_ostream( const basic_ostream & rhs ) = delete; //wymaga C++11
        basic_ostream( basic_ostream && rhs ); //wymaga C++11
    };
}

Argumenty

ArgumentOpis
sbBufor strumienia do użycia jako sekwencja wyjściowa.
rhsObiekt tej klasy do skopiowania.

Opis szczegółowy

Konstruktor publiczny przypisuje wartości początkowe do klasy bazowej używając wyrażenia
std::basic_ios::init( sb )
. Konstruktor kopiujący jest chroniony i usunięty. Strumienie wyjściowe nie mogą być kopiowane. Konstruktor przeniesienia używa wyrażenia
std::basic_ios < CharT, Traits >::move( rhs )
 do przeniesienia składowych klasy
std::basic_ios
 (z wyjątkiem danych otrzymywanych przez wywołanie funkcji
rdbuf()
) z miejsca określonego przez argument rhs do strumienia, czyli
* this
. Ten konstruktor przeniesienia jest chroniony i wywoływany przez konstruktory przeniesienia innych klas strumieni wyjściowych, na przykład
std::basic_ofstream
 lub
std::basic_ostringstream
.

Przykład

C/C++
#include <iostream>
#include <sstream>
#include <utility>

int main()
{
    //!błąd: konstruktor kopiujący jest usunięty
    //std::ostream first(std::cout);
    std::ostream second( std::cout.rdbuf() );
    //!błąd: konstruktor przeniesienia jest chroniony
    //std::ostream third(std::move(std::ostringstream()<<25));
    std::ostringstream fourth( std::move( std::ostringstream() << 25 ) );
    second << fourth.str();
    return 0;
}
Standardowe wyjście programu:
25

Zagadnienia powiązane

operator=Zastępuje obiekt bufora. (operator - metoda)

Linki zewnętrzne