Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: koikko - 25.08.10 - klo:23.17

Otsikko: C++ tökkii
Kirjoitti: koikko - 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
Otsikko: Vs: C++ tökkii
Kirjoitti: Ville Pöntinen - 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:~$
Otsikko: Vs: C++ tökkii
Kirjoitti: koikko - 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

Otsikko: Vs: C++ tökkii
Kirjoitti: odysseus - 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;
}
Otsikko: Vs: C++ tökkii
Kirjoitti: mikko_h - 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.