Chlorek Temat założony przez niniejszego użytkownika |
Tworzenie strumienia » 2012-04-04 22:26:38 Zaciekawił mnie temat tworzenia strumienia. Jak stworzyć coś takiego, jak przykładowo w iostream: Chodzi mi tu o to "cout <<", z tego co się udało mi dowiedzieć (czy trafnie to nie wiem), to opiera się to jakoś na strukturach/klasach. Proszę o jakieś przybliżenie tematu, sam przyznam się, że nie szukałem zbyt wiele w sieci, ale na kilka rzutów okiem widzę, że nic szczególnego nie ma. Gdyby ktoś mógł podać chociaż taki mały example, że przykładowo piszę "test << 10" i mam wartość 10 przypisaną do zmiennej "int wartosc". |
|
akwes |
» 2012-04-04 22:31:03 Nie wiem czy dobrze zrozumiałem. Strumienie to tylko pewna myśl logiczna organizacji czegoś, te kreski to tylko przeładowany operator << |
|
Chlorek Temat założony przez niniejszego użytkownika |
» 2012-04-04 22:32:38 No dobrze rozumiesz, jednak nie za bardzo rozumiem jak to wychwycić (to co "wrzucasz" w ten "strumień") i wykonać na tym jakieś operacje. |
|
akwes |
» 2012-04-04 22:36:32 Strumień to strumień. To klasa dziedzicząca po klasie ios. Zaraz Ci skrobnę jakiś przykład z przeładowaniem, bo widzę, że łączysz dwie rzeczy niepotrzebnie :) Zbyt sugestywny jest operator<< widocznie :) Bo taką samą funkcjonalność mógłby pełnić także inny operator. |
|
Chlorek Temat założony przez niniejszego użytkownika |
» 2012-04-04 22:38:18 Co do operatora to rozumiem tutaj jego znaczenie, podałem go jako przykład. I dziękuję za chęć pomocy :) |
|
akwes |
» 2012-04-04 22:55:14 To jeszcze raz xD Chodzi mi tu o to "cout <<", z tego co się udało mi dowiedzieć (czy trafnie to nie wiem), to opiera się to jakoś na strukturach/klasach.
|
cout to obiekt klasy ostream, stworzony wcześniej, obsługujący wyjście na ekran. Dane pobiera dzięki przeładowanemu operatorowi operator<<. Gdyby ktoś mógł podać chociaż taki mały example, że przykładowo piszę "test << 10" i mam wartość 10 przypisaną do zmiennej "int wartosc".
|
No, tylko tutaj nie ma nic o strumieniach. Szybki przykład: #include <iostream> #include <conio.h> using namespace std;
class CKlas { public: int Value; void operator <<( int a ) { Value = a; } } cint;
int main() { cint << 10; std::cout << cint.Value; cint << 15; std::cout << cint.Value; _getch(); return 0; }
1015
(to co "wrzucasz" w ten "strumień")
|
Wychwycić to można czymkolwiek, możemy sobie wybrać jaki operator będzie to dla nas robił, a może to być nawet zwykła funkcja. Kwestia jak strumień chce sobie to w sobie zapisać, bo przekazanie to po prostu kwestia ciała przeładowanego operatora. Chodzi Ci o to jak jest zbudowany strumień? Jak przechowuje on w sobie, tam w środku dane i chcesz zrobić coś własnego? Czy chodzi Ci właśnie o sam zapis? |
|
Chlorek Temat założony przez niniejszego użytkownika |
» 2012-04-04 23:01:43 Chodzi mi raczej o zarys na czym to polega, nie jest mi to raczej do niczego potrzebne. Po prostu ludzka ciekawość "jak to działa". Teraz rozumiem i miło, że otrzymałem wyjaśnienie. Zamykam. |
|
« 1 » |