Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: 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
-
Sinne tarvii "using namespace std; -rivin.
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:~$
-
Sinne tarvii "using namespace std; -rivin.
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
-
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?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
printf("Hello World!\n");
return EXIT_SUCCESS;
}
-
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.