Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

R. 43 - nie rozumiem działania programu - podwójny cout

Ostatnio zmodyfikowano 2019-01-28 14:31
Autor Wiadomość
rottingham
Temat założony przez niniejszego użytkownika
R. 43 - nie rozumiem działania programu - podwójny cout
» 2019-01-28 13:12:52
Cześć!

Napisałem taki oto program i trochę zaskoczył mnie on danymi wyjściowymi. Możecie mi powiedzieć co oznacza druga linijka danych w danych wyjściowych?

Kod:
C/C++
int main()
{
   
    int tab[ 2 ] = { 3, 4 };
    cout << tab[ 0 ] << endl << cout << tab[ 1 ] << endl;
    cout << tab + 1 << endl;
    cout << tab << endl;
}

Dane wyjściowe:

3
0x4c68644
0x6dfedc
0x6dfed8

Pozdrawiam!

EDIT.
Już zauważyłem, że przyczyną jest podwójny cout. Co w takim razie robi podwójny cout? Czy to jest w jakiś sposób użyteczne?
P-173734
Monika90
» 2019-01-28 14:15:08
Jeżeli
cout << cout;
 daje się skompilować, to znaczy że masz bardzo starą implementację biblioteki standardowej. Nie jest to w żaden sposób użyteczne, jest to efekt uboczny tego jak kiedyś implementowano konwersję do typu bool, kiedyś przez konwersję do void*, a teraz za pomocą explicit operator bool. Więc teraz nonsensowny kod już się nie skompiluje.
P-173735
rottingham
Temat założony przez niniejszego użytkownika
» 2019-01-28 14:19:16
Powinienem zaktualizować bibliotekę czy to dla mnie jeszcze bez znaczenia?

Korzystam z najnowszego Code::Blocks.
P-173736
Monika90
» 2019-01-28 14:28:14
Może po prostu nie masz włączonego standardu C++11 lub nowszego. Więc wystarczy to gdzieś włączyć w IDE.
P-173737
rottingham
Temat założony przez niniejszego użytkownika
» 2019-01-28 14:31:44
Dokładnie tak było.

Dzięki za pomoc.
P-173738
« 1 »
  Strona 1 z 1