Koodipätkä toimii .h liitteen kanssa, mutta ei ilman. Syytä en tiedä, joten voisitteko valaista? Olen aina käsittänyt näiden olevan käytännössä samat asiat, muutoin paitsi .h on vanhempi.
Kääntäjänä MinGW.
#include <iostream.h> class Auto { public: int nopeus; void tilanne(); }; void Auto::tilanne() { cout << "Nopeutta: " << nopeus << " km/h"; } int main() { Auto porche; porche.nopeus = 50; porche.tilanne(); EXIT_SUCCESS; }
Mitä herjaa?
Ota se ".h" pois ja lisää coutin eteen "std::".
In member function `void Auto::tilanne()':
`cout' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
juu toki sen .h voi ottaa pois ja lisätä std:: mutta ei normaalisti tarvitsisi.
Tuon "std::":n käyttäminen on suositeltavaa, mutta jos et millään halua käyttää sitä lisää rivi: "using namespace std;" #include -lauseen alle.
No voeha... kyseisen lauseen piti olla siellä. Ajattelin siis kokoajan, että siellä se on. No ilmankos... no ei mitää :D
Minkätakia muuten std:: on suositeltavampaa kuin käyttää lausetta viittausalueella?
Juhadex kirjoitti:
Minkätakia muuten std:: on suositeltavampaa kuin käyttää lausetta viittausalueella?
Koska silloin voit huoletta käyttää myös muita nimiavaruuksia.
L2-K2 kirjoitti:
Juhadex kirjoitti:
Minkätakia muuten std:: on suositeltavampaa kuin käyttää lausetta viittausalueella?
Koska silloin voit huoletta käyttää myös muita nimiavaruuksia.
En tiedä yhtään, mutta eikö ne muutkin nimiavaruudet vois alussa määritellä?
ja jos tietää käyttävänsä vain yhtä (niinkuin about aina) niin en näe ongelmaa käyttää pelkästään viittausalueen std nimiavaruuden määrittelyä...
Voi käyttää myös
using std::cout
tällöin voi käyttää cout suoraan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.