Kirjoittaja Aihe: C++ tökkii  (Luettu 2183 kertaa)

koikko

  • Käyttäjä
  • Viestejä: 25
    • Profiili
C++ tökkii
« : 25.08.10 - klo:23.17 »

Hei! Tässä alkuun koodia:


kaitsu@kaitsu-desktop:~$ cat hello.cpp
#include <iostream>

int main (void)
{
   cout << " Hello World! " << endl;
   return 0;
}

Perinteinen hello sovellus alkuun ja mun koneen antama
heijaste käännölle alla.

kaitsu@kaitsu-desktop:~$ g++ hello.cpp
hello.cpp: In function ‘int main()’:
hello.cpp:7: error: ‘cout’ was not declared in this scope
hello.cpp:7: error: ‘endl’ was not declared in this scope
kaitsu@kaitsu-desktop:~$

Miksei hello käänny???

t:kaitsu

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Vs: C++ tökkii
« Vastaus #1 : 25.08.10 - klo:23.41 »

Sinne tarvii "using namespace std; -rivin.

Koodia: [Valitse]
ville@thepontiset:~$ cat hello.cpp
#include <iostream>
using namespace std;


int main (void)
{
   cout << " Hello World! " << endl;
   return 0;
}
ville@thepontiset:~$ c++ hello.cpp -o hello
ville@thepontiset:~$ ./hello
 Hello World!
ville@thepontiset:~$

koikko

  • Käyttäjä
  • Viestejä: 25
    • Profiili
Vs: C++ tökkii
« Vastaus #2 : 25.08.10 - klo:23.58 »

Sinne tarvii "using namespace std; -rivin.

Koodia: [Valitse]
ville@thepontiset:~$ cat hello.cpp
#include <iostream>
using namespace std;


int main (void)
{
   cout << " Hello World! " << endl;
   return 0;
}
ville@thepontiset:~$ c++ hello.cpp -o hello
ville@thepontiset:~$ ./hello
 Hello World!
ville@thepontiset:~$
Kiitos paljon.

Onko tämä "using namespace std;"
uusi  juttu vai eikö semmoista ole esmes. mikkisoftaa käytettäessä.

Tosin minulla ei ole enää millään osiolla ms. dataa yhtään eikä tule olemaankaan.

t:kaitsu


odysseus

  • Vieras
Vs: C++ tökkii
« Vastaus #3 : 26.08.10 - klo:13.21 »
Onko tämä "using namespace std;"
uusi  juttu vai eikö semmoista ole esmes. mikkisoftaa käytettäessä.

Ei ole uusi juttu eikä todellakaan mitään M$ specifistä vaan standardi tapa sanoa, että otetaan käyttöön standardikirjasto, jonka nimiavaruus on tuo kyseinen (jottei se sekoita mahdollisesti juuri jotain mikkisoftan epästandardia kamaa sinne sekaan).

Eli koodi kääntyy myös VC:llä jos joskus haluat ja tarvitset.

BTW: Nyt on tietty hyvä myös kysyä, että miksi tuon pitää olla juuri C++:aa? Eikö C riittäisi?

Koodia: [Valitse]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
   printf("Hello World!\n");
   return EXIT_SUCCESS;
}

mikko_h

  • Käyttäjä
  • Viestejä: 202
    • Profiili
Vs: C++ tökkii
« Vastaus #4 : 28.08.10 - klo:20.32 »

Onko tämä "using namespace std;"
uusi  juttu vai eikö semmoista ole esmes. mikkisoftaa käytettäessä.


Jotkut kääntäjät ovat lisäävät std-nimiavaruuden oletuksena, mikä on perua ajalta ennen 'namespace':n standardointia. Tuolloin standardikirjaston symbolit tulivat suoraan globaaliin nimiavaruuteen. Ilmeisesti g++:kin teki vielä takavuosina tuon automaattilisäyksen, joten jos hello world -esimerkin sattuu hakemaan väärästä paikasta, niin uusien kääntäjien kanssa tapahtuu juuri tämmöistä sekoilua. C++ on sentään nykyään paljon standardimpi kieli kuin oikeasti pahaan aikaan 90-luvulla, jolloin standardikirjastojen toteutukset olivat aika lailla mitä sattuu.