Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse
Har ikke Visual C++, så kan ikke komme med noe svar der.

Det har en funksjon, omtrent som Visual Basic, slik at du kan "tegne" knapper og slikt.

 

EDIT: men du kan vel ikke svare på det utifra den opplysningen... (silly me.. :roll: )

Endret av andesam
Lenke til kommentar

Fra den andre tråden:

Hva er "using namespase std;" godt for egentlig? Hvilken funksjon har det?

#include <iostream>

using namespace std;


namespace A {
void hello()
{
 cout << "Hello, this i A::hello() speaking!" << endl;
}
};


namespace B {
void hello()
{
 cout << "Hello, this i B::hello() speaking!" << endl;
}
};


int main ()
{
A::hello();
B::hello();

{
 using namespace A;
 hello();
}

{
 using namespace B;
 hello();
}

return(0);
}

 

I iostream og de andre standardheaderene er ting lagt i std-namespacet.

 

Okey.. Men hva er egentlig compiler, debugger og det der?

 

source code -> preprocessor -> compiler -> linker -> "exe-file"/library (.dll-fil).

 

Under Visual C++ er det cl.exe som er kompileren.

 

Debuggeren brukes for å f.eks. "fryse" programmet under kjøring for så å titte på variabler og "statusen" til programmet.

 

Jeg bruker bare build nå.

"Build" som du finner i menyen kaller cl.exe (kompileren) med visse parametere.

Lenke til kommentar

Hm, nei - tror ikke det -- men hva mener du med "å lagre ting"?

 

Flere måter å forklare det på, men:

Programmering handler om å sette navn på ting. Sammenlign dette med at vi har navn på ting her i den virkelige verden. F.eks. i Norge så har vi ordet "blyant", mens i England har vi et annet navn på samme tingen - "pencil".

 

Vi kan beskrive dette v.h.a. kode:

namespace Norway {
 string pencil = "blyant";
};

namespace England {
string pencil = "pencil";
};

 

Et komplett eksempel:

#include <iostream>
#include <string>

using namespace std;


namespace Norway {
 string pencil = "blyant";
};

namespace England {
 string pencil = "pencil";
};



int main ()
{
cout << "In Norway we say: " << Norway::pencil << endl;
cout << "In England we say: " << England::pencil << endl;

return(0);
}

 

Les mer om det på linkene jeg pastet ovenfor - det står veldig greit forklart der.

 

 

Edit:

Endret typene fra char const* til std::string.

Endret av søppel
Lenke til kommentar

Bare glem det jeg sa om å lagre ting. Jeg bare surra littegrann.

Nå tror jeg jeg skjønner det bedre. Men hvis jeg kunne få en komplett forklaring på hva de delene her av koden var for noe så kunne jeg begynt å lage noen programmer for å teste det.

 

1. Hva skjer egentlig når man skriver dette:

namespace Norway {
char const* pencil = "blyant";
};

namespace England {
char const* pencil = "pencil";
};

eller når man skriver dette:

cout << "In Norway we say: " << Norway::pencil << endl;
cout << "In England we say: " << England::pencil << endl;

2.

Hva betyr

::

som står her

Norway::pencil

Er liksom "pencil" en slags variabel, eller hva er det?

 

(Jeg høres sikkert ut som en noob når jeg spør om så mye rart)

Lenke til kommentar

Foreslår at du leser litt før du spør mer. De 3 første kapittlene i boka jeg linker til er et greit utgangspunkt og forklarer mer enn jeg (eller andre) noengang kan skrive i denne lille ruta.

 

Her blir to variabler deklarert og definert. Og de får noen verdier bundet til seg.

 

For info om ::, ta en titt her om scope:

http://nostdal.net/lars/ticpp-v1/Chapter03.html#Heading125

..og om scope resolution:

http://nostdal.net/lars/ticpp-v1/Chapter10.html#Heading308

http://nostdal.net/lars/ticpp-v1/Chapter04.html#Heading205

 

pencil er en variabel ja.

 

Egentlig kan du lese hele boka, du finner svar på (nesten) alt om selve språket der, i hvertfall sammens med Volume 2 av boka.

 

Så kan du begynne å kikke rundt etter hvilke(t) API(er) du vil bruke siden.

 

Edit:

Kort om resolution operatoren; hadde vi sagt:

cout << "In England we say: " << pencil << endl;

..hvordan skulle da compileren vite hvilken av pencil-variablene du mener? Det finnes jo to av dem; en i Norway-namespacet, og en i England-namespacet.

 

Derfor sier vi "pencil variabelen som holder til inne i England-namespacet":

cout << "In England we say: " << England::pencil << endl;

..eller så kan vi fortelle compileren at "fra nå av mener jeg England-namespacet hvis du er i tvil":

using namespace England;
cout << "In England we say: " << pencil << endl;

 

Derfor kunne et "Hello World" program blitt skrevet på flere vis:

#include <iostream>

using namespace std;

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

..eller..

#include <iostream>

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

..eller en tredje måte, som jeg ikke har snakket om ennå (ta en titt i boka):

#include <iostream>

using std::cout;
using std::endl;

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

Endret av søppel
Lenke til kommentar

..og en fjerde.. heh.. litt rar måte:

#include <iostream>

namespace std {
int blah()
{
 cout << "Hello World!" << endl;
 return(0);
}
}


int main()
{
return(std::blah());
}

 

Vet ikke helt om den kan samstilles med de andre egentlig ..

 

Den illustrerer i hvertfall at navn/ting i et namespace er tilgjengelig innenfor definisjonen av det samme namespacet, ellernoe.

Lenke til kommentar

Dette er verdens mest primitive dataspill.

Hvis noen ikke skjønner konseptet, så går det ut på å velge mellom flere alternativer for å til slutt klare spillet. Men hvis dere prøver å kjøre det, vil dere finne et par bugs, f.eks at man svarer på to spørsmål samtidig. Kan noen gi meg en pekepinn om hva som er feil?

 

P.S. Koden er ikke på langt nær ferdig, men det skulle være mulig å finne hva som er galt alikevel.

 

 

#include <iostream>
#include <string>

using namespace std;


namespace hus {
string streng = "a house.";
};

namespace tre {
string streng = "a tree.";
};

namespace gh {
string streng = "You walk over to the house, and discover that the door is not locked.";
};

namespace st {
string streng = "you turn around and walk back into your house. The story ends!!";
};

namespace dig {
string streng = "You walk over to the tree and you discover a hole in the ground";
};

int main ()
{
int a;
int b;
int c;
int d;
cout << "Do you want to look left or right? Type 0 for left, or 1 for right" << endl;
cin >> a;
if (a == 0)
 cout << "You look to the left, and see see " << hus::streng << endl;
 b = 0;
if (a == 1)
 cout << "You look to the right, and see " << tre::streng << endl;
 b = 1;
if (b == 0)
 cout << "Would you walk over to the house?  Type 0  for Yes, or 1 for No" << endl;
cin >> a;
if (b == 1)
 cout << "Would you walk over to the tree?  Type 0  for Yes, or 1 for No" << endl;
cin >> c;
if (a == 0)
 cout << gh::streng;
if (a == 1)
 cout << st::streng;
if (c == 0)
 cout << dig::streng;
return (0);
}

Endret av Tha Phreak
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...