Cześć,
Czy może mi ktoś potwierdzić, że funkcja cin.get w bibliotece iostream jest funkcją statyczną tj. można ją wywołać bez tworzenia żadnego obiektu?
Bo w innym razie jak można jej użyć bez tworzenia obiektów? :/
Trochę tego nie rozumiem...
dziękuję z góry za wyjaśnienie
Dokladnie tak:
http://ideone.com/FyLWVN
cin - jest obiektem.
_13th_Dragon napisał(a):
cin - jest obiektem.
Czyli dobrze rozumiem, że w pliku iostream są zdefiniowane klasy ostream i istream a jednocześnie są tam stworzone obiekty tych typów? I są one w takim razie globalnie zdefiniowane?
Dzięki za pomoc.
Ale czy może mi ktoś jeszcze wyjaśnić dlaczego w takim razie nie mogę stworzyć własnego obiektu, który będzie przesyłał mi znaki na ekran etc? Np. tak:
#include <iostream>
#include <ostream>
using namespace std;
void main{
ostream wczytaj;
wczytaj << "jakis tekst" << endl; //error
}
Bo nie czytasz dokumentacji.
http://en.cppreference.com/w/cpp/io/manip/endl
Shalom napisał(a):
Bo nie czytasz dokumentacji.
http://en.cppreference.com/w/cpp/io/manip/endl
Czy chodzi o to, że tu jest jakiś szablon? (jeszcze nie do końca je rozumiem)
Próbowałem wstawić coś między ostre nawiasy (np. char) ale nic nie pomogło i ciągle wywala błędy... Próbowałem również bez stosowania endl; niestety nic nie pomogło...
Natomiast tutaj: http://en.cppreference.com/w/cpp/io/cout jest tak jakby to było normalnie zdefiniowane tj. extern std::ostream cout;
Ale jak chcę u siebie tak zrobić np. extern std::ostream nowy_cout; to sama deklaracja jest ok ale próba wrzucenia czegoś za pomocą operatora "<<" już powoduje błąd...
Czy może mi ktoś pomóc to zrozumieć tj. jak stworzyć własny obiekt który będzie wyświetlał napis na ekranie?
Z góry dziękuję za pomoc!
Można np tak:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream mycout("con");
mycout<<"abc"<<endl;
return 0;
}
dziękuję za wyjaśnienie ;-)
pozdrawiam