|
| std:: og int main Fra : Anders Lund |
Dato : 12-07-02 20:34 |
|
Nu har jeg til min forbavselse set at det hedder int main og ikke void main.
På siden der giver mig den skidebalde
( http://www.research.att.com/~bs/bs_faq2.html#void-main) finder jeg så denne
kode stump:
#include<iostream>
int main()
{
std::cout << "This program returns the integer value 0\n";
}
hvorfor std:: ? og hvornår
hverten "int main" eller "std::" bliver nævnt i bogen "C++" af Kris Jamsa,
er det bogen der er dårlig (Det ville da være irriterende da jeg lige er
færdig med at læse den intenst)
Mvh
Anders Lund
| |
Daniel Blankensteine~ (12-07-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 12-07-02 20:47 |
|
"Anders Lund" <webmaster@123grin.dk> wrote in message
news:3d2f2f27$0$12707$edfadb0f@dspool01.news.tele.dk...
> Nu har jeg til min forbavselse set at det hedder int main og ikke void
main.
> På siden der giver mig den skidebalde
> ( http://www.research.att.com/~bs/bs_faq2.html#void-main) finder jeg så
denne
> kode stump:
>
> #include<iostream>
>
> int main()
> {
> std::cout << "This program returns the integer value 0\n";
> }
>
> hvorfor std:: ? og hvornår
>
> hverten "int main" eller "std::" bliver nævnt i bogen "C++" af Kris
Jamsa,
> er det bogen der er dårlig (Det ville da være irriterende da jeg lige er
> færdig med at læse den intenst)
Jeg har også læst ovenstående bog og undre mig over det samme. Ligeledes har
jeg altid brugt char* og ikke strings, men måske I kan anbefale en god bog
der behandler std:, strings and hvad C++ består af. Jeg har nemlig hørt at
hvis man kan de 64 (eller deromkring) grundlæggende "funktioner", så kan man
alt indenfor C++.
mvh
db
| |
Mogens Hansen (12-07-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 12-07-02 21:43 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote
[snip]
> Jeg har også læst ovenstående bog og undre mig over det samme. Ligeledes
har
> jeg altid brugt char* og ikke strings, men måske I kan anbefale en god bog
> der behandler std:, strings and hvad C++ består af.
Jeg plejer at anbefale
Accelerated C++, Practical Programming by Example
Andrew Koenig, Barbara E. Moo
ISBN 0-201-70353-X
hvis man vil have en kort (336 sider, med det hele) introduktion til moderne
C++.
F.eks. start "namespace" og "std" forklaret på side 3, "std::string" på side
9.
På side 4 står der at string literals først vil blive forklaret på side 176,
omkring det sted hvor der også står noget om pointere og arrays.
Disse sidetal giver dig formodentlig et indtryk af at det er en bog, hvor
fokus ligger væsentligt anderledes end hvor mange andre bøger lægger det.
Bogens størrelse gør naturligvis at hele C++ ikke kan blive beskrevet.
> Jeg har nemlig hørt at
> hvis man kan de 64 (eller deromkring) grundlæggende "funktioner", så kan
man
> alt indenfor C++.
Det er nok temmeligt optimistisk.
Men ovennævnte bog dækker nok en god del af de grundlæggende "funktioner",
som man har brug for til at skrive nyttige programmer.
Venlig hilsen
Mogens Hansen
| |
Daniel Blankensteine~ (12-07-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 12-07-02 22:11 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:agner1$26ps$1@news.cybercity.dk...
> Jeg plejer at anbefale
> Accelerated C++, Practical Programming by Example
> Andrew Koenig, Barbara E. Moo
> ISBN 0-201-70353-X
Jeps, den har jeg skrevet ned, da jeg fik den anbefalet herinde for noget
tid siden
> hvis man vil have en kort (336 sider, med det hele) introduktion til
moderne
> C++.
>
> F.eks. start "namespace" og "std" forklaret på side 3, "std::string" på
side
> 9.
> På side 4 står der at string literals først vil blive forklaret på side
176,
> omkring det sted hvor der også står noget om pointere og arrays.
> Disse sidetal giver dig formodentlig et indtryk af at det er en bog, hvor
> fokus ligger væsentligt anderledes end hvor mange andre bøger lægger det.
>
> Bogens størrelse gør naturligvis at hele C++ ikke kan blive beskrevet.
Ok, jeg er meget int i strings for at beskytte mine programmer mod buffer
overflows o.s.v.
> > Jeg har nemlig hørt at
> > hvis man kan de 64 (eller deromkring) grundlæggende "funktioner", så kan
> man
> > alt indenfor C++.
>
> Det er nok temmeligt optimistisk.
> Men ovennævnte bog dækker nok en god del af de grundlæggende "funktioner",
> som man har brug for til at skrive nyttige programmer.
oki, takker
mvh
db
| |
Daniel Blankensteine~ (16-07-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 16-07-02 19:58 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:agner1$26ps$1@news.cybercity.dk...
> F.eks. start "namespace" og "std" forklaret på side 3, "std::string" på
side
> 9.
Hov forresten, det første programmeringssprog jeg prøvet var java og der kan
jeg huske jeg arbejdet med strings, fungere strings på samme måde i C++?
Altså fx med at man kan sige string1 + string2 = string3.
mvh
db
| |
Kent Friis (16-07-2002)
| Kommentar Fra : Kent Friis |
Dato : 16-07-02 20:05 |
|
Den Tue, 16 Jul 2002 20:58:03 +0200 skrev Daniel Blankensteiner:
>"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
>news:agner1$26ps$1@news.cybercity.dk...
>> F.eks. start "namespace" og "std" forklaret på side 3, "std::string" på
>side
>> 9.
>
>Hov forresten, det første programmeringssprog jeg prøvet var java og der kan
>jeg huske jeg arbejdet med strings, fungere strings på samme måde i C++?
>Altså fx med at man kan sige string1 + string2 = string3.
Huh? Det der ligner mere Cobol-syntax.
I C++ ville man skrive: string3 = string 1 + string 2
Mvh
Kent
--
Those who write "Optimized for Netscape" og "Best viewed with MSIE"
never figured out the difference between the WWW and a
Word Perfect 4.2 Document.
| |
Mogens Hansen (16-07-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 16-07-02 20:11 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote
> Altså fx med at man kan sige string1 + string2 = string3.
Ja (næsten):
string3 = string1 + string 3;
Venlig hilsen
Mogens Hansen
| |
Daniel Blankensteine~ (16-07-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 16-07-02 20:16 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:ah1qr3$n2c$1@news.cybercity.dk...
>
> "Daniel Blankensteiner" <db@traceroute.dk> wrote
>
> > Altså fx med at man kan sige string1 + string2 = string3.
>
> Ja (næsten):
> string3 = string1 + string 3;
Ja ok, det var nu heller ikke et forsøg på at lave et syntaks mæssigt
korrekt eksempel, men bare at I vidste hvad jeg snakket om og det gjorde I
mvh
db
| |
Kent Friis (16-07-2002)
| Kommentar Fra : Kent Friis |
Dato : 16-07-02 20:16 |
|
Den Tue, 16 Jul 2002 21:11:20 +0200 skrev Mogens Hansen:
>
>"Daniel Blankensteiner" <db@traceroute.dk> wrote
>
>> Altså fx med at man kan sige string1 + string2 = string3.
>
>Ja (næsten):
> string3 = string1 + string 3;
Ja (næsten):
string 3 = string 1 + string 2;
)))))
Mvh
Kent
--
Mails skrevet før 12:00 skal læses med det forbehold, at hjernen først
forventes at være færdig med at boote på det tidspunkt, og indholdet
derfor kan indeholde random data der tilfældigvis lå i den
uinitializerede cache.
| |
Morten Boysen (12-07-2002)
| Kommentar Fra : Morten Boysen |
Dato : 12-07-02 21:44 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote in message
news:agnbmh$i6n$1@sunsite.dk...
> Jeg har også læst ovenstående bog og undre mig over det samme.
Ligeledes har
> jeg altid brugt char* og ikke strings, men måske I kan anbefale en
god bog
> der behandler std:, strings and hvad C++ består af. Jeg har nemlig
hørt at
> hvis man kan de 64 (eller deromkring) grundlæggende "funktioner", så
kan man
> alt indenfor C++.
En fremragende bog vil være:
< http://www.amazon.com/exec/obidos/ASIN/020170353X/qid=1026506186/sr=8
-1/ref=sr_8_1/102-0849945-3505766>
Angående de 64 grundlæggende funktioner, så har du enten misforstået
noget, eller personen der siger det, aner ikke hvad vedkommende
snakker om. Derudover er der en del forskel på at kunne programmere og
så kunne C++.
Programmering er et spørgsmål om tankegang, mens C++ er et spørgsmål
om syntaks og semantik. En, måske dårlig, analogi, vil være at opfatte
programmering murerhåndværket, og C++ som det specifikke værktøj, du
bruger. Bare fordi man ved, hvad mørtel er, så behøves man så sandelig
ikke være en god murer.
Det er desværre en opfattelse, at man kan lære at programmere på 21
dage eller 24 timer. Det er skudt helt hen i vejret. Lidt forsimplet
skal en gennemsnitsperson skal bruge minimum et koncentreret år, for
at kunne skrive kode, der kan bruges til noget fornuftigt. Kriteriet
for god kode er ikke alene, at det kan kompileres. Der skal meget mere
til.
--
Morten Boysen
| |
Claus Rasmussen (12-07-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 12-07-02 21:49 |
|
Daniel Blankensteiner wrote:
> ... . Jeg har nemlig
> hørt at hvis man kan de 64 (eller deromkring) grundlæggende "funktioner",
> så kan man alt indenfor C++.
Mon ikke snarere det er C, der er tale om ?
-Claus
| |
Daniel Blankensteine~ (12-07-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 12-07-02 22:15 |
|
"Claus Rasmussen" <clr@cc-consult.dk> wrote in message
news:agnfbk$1a5$1@sunsite.dk...
> ... . Jeg har nemlig
> > hørt at hvis man kan de 64 (eller deromkring) grundlæggende
"funktioner",
> > så kan man alt indenfor C++.
>
> Mon ikke snarere det er C, der er tale om ?
Han programmere i C og da jeg spurgte om dette også gælder for c++ svarede
han ja.
Egentlig bruger jeg både C og C++. C giver mig nogle system funktion i
freebsd som jeg ikke kan undvære og C++ giver mig OOP.
mvh
db
| |
Claus Rasmussen (12-07-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 12-07-02 21:07 |
|
Anders Lund wrote:
> Nu har jeg til min forbavselse set at det hedder int main og ikke void
> main.
Væn dig til det
> hvorfor std:: ? og hvornår
Det er så en anden sag...
'std::' er en namespace-dims, der fortæller at 'cout' skal findes i 'std'
namespacet. Namespaces er en "slags" moduler, som du måske kender fra andre
sprog. Du kan lave dine egne, f.eks:
namespace mit_namespace {
void f() { ... }
};
int main() {
mit_namespace::f();
}
Det er muligt at undgå at skrive 'mit_namespace::' ved at bruge et 'using'
direktiv:
namespace mit_namespace {
void f() { ... }
};
using namespace mit_namespace;
int main() {
f();
}
(using direktivet kan også stå inde i en funktion, og så gælder det
kun der)
Det er en del diskuteret, om det er god praksis at anvende 'using'
eller ej. Faktisk har der været nogle heftige flame-wars på comp.std.
c++ omkring netop dette spørgsmål: Der er dem, der mener, at man altid
skal bruge 'std::', mens andre er godt trætte af at skulle skrive 'std::'
117 millioner gange og mener, at i .c/.C/.cc/.cpp filer kan man godt
bruge 'using'.
I headerfiler (.h/.H/.hh/.hpp) er der derimod enighed om, at der skal
man altid bruge 'std::' (ellers kan man få nogle temmeligt obskure fejl).
Jeg bruger altid 'using namespace std;', men det er helt op til dig.
-Claus
| |
Mogens Hansen (12-07-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 12-07-02 21:43 |
|
"Anders Lund" <webmaster@123grin.dk> wrote
[snip]
> hverten "int main" eller "std::" bliver nævnt i bogen "C++" af Kris
Jamsa,
> er det bogen der er dårlig (Det ville da være irriterende da jeg lige er
> færdig med at læse den intenst)
Se f.eks. mine tidligere kommentarer
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scoring=d&
selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3
Venilg hilsen
Mogens Hansen
| |
Byrial Jensen (12-07-2002)
| Kommentar Fra : Byrial Jensen |
Dato : 12-07-02 21:53 |
|
Anders Lund <webmaster@123grin.dk> skrev:
> hverten "int main" eller "std::" bliver nævnt i bogen "C++" af Kris Jamsa,
> er det bogen der er dårlig
Ja
| |
|
|