|
| Dansk C++ for begyndere ? Fra : Torben W. Hansen |
Dato : 04-06-02 22:47 |
|
Davs!
Er der nogen der kan anbefale en god C++ bog for begyndere ?
Jeg har programmeret ANSI C i nogle år
På forhånd tak...
Torben W. Hansen
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 06:50 |
|
"Torben W. Hansen" <mail@ins-intersoft.com> wrote
>
> Er der nogen der kan anbefale en god C++ bog for begyndere ?
>
Nej, desværre.
Der findes efter min bedste overbevisning ikke en god dansk C++ bog for
begyndere - og jeg har puttet en del energi i at undersøge det.
Der findes bøger om C++ på dansk, men de er enten gamle (før C++ blev
standardiseret, før STL etc.) eller dårlige, eller begge dele samtidig.
Derfor er ingen af dem anbefalelsesværdige.
Hvis man vil lære C++, er det er vigtigt at få fat på en god og moderne bog.
F.eks. skal der være brugt en del plads på anvendelsen af C++ Standard
library.
Hvis f.eks. klasserne string (std::string) og vector (std::vector) ikke er
forklaret tidligt i bogen, så er den gal efter min mening.
Et par bud på danske bøger er:
C++, dataabstraktion og objekt-orienteret programmering
Maz Spork
ISBN 87-502-0729-6
den er fra 1991.
C++, videregående programmering
Jeff Alger
ISBN 87-571-2216-4
som er selvhøjtidelig, ikke rettet mod begyndere, den er lidt gammel.
Desuden er den temmelig dårlig i sit valg af oversatte ord. Hvem tør f.eks.
give et bud på hvad "viderestilling" er ?
C++
Kris Jamsa
ISBN 87-7843-265-0
Den er simpelthen fyldt med banale fejl, og mange rigtigt dårlige råd.
Se eventuelt mine tidligere kommentarer om den bog:
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scoring=d&
selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3
Det skal dog bemærkes at jeg har set flere udtale at de har været glade for
at læse den.
C/C++, grundbog i programmering
Henrik Kressner
ISBN 87-571-2270-9
hvor problemet egentlig allerede står i titlen.
Det er unødvendigt at lære C, hvis man vil lære C++ - og du kan desuden
allerede C.
Den indeholder ifølge beskrivelsen på hjemmesiden overhovedet ikke en
beskrivelse af Standard Library, hvilket jeg findes dybt beklageligt.
Min konklussion er at på nuværende tidspunkt er man bedre tjent med at
acceptere at der ikke findes gode bøger om C++ på dansk, og derfor vende sig
mod de engelske.
Det er min opfattelse at
Accelerated C++
Andrew Koenig, Barbara Moo
ISBN 0-201-70353-X
er en rigtig god, moderne introduktion til C++, og øvelserne er gode.
Derefter kan man f.eks. kigge på
The C++ Programming Language, Special Edition
Bjarne Stroustrup
ISB 0-201-70073-5
Hvis du vil spare lidt penge, så vælg "Third Edition" i stedet. Indholdet er
det samme, men indbindingen og papirkvaliteten er dårligere.
Se eventuelt også mit tidligere svar på lignende spørgsmål
http://groups.google.com/groups?q=mogens_h%40dk-online.dk+Kressner&hl=da&lr=
&ie=UTF8&oe=UTF8&c2coff=1&selm=9udo65%241681%241%40news.cybercity.dk&rnum=1
Venlig hilsen
Mogens Hansen
| |
Jakob Møbjerg Nielse~ (05-06-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 05-06-02 09:36 |
|
> Desuden er den temmelig dårlig i sit valg af oversatte ord. Hvem
> tør f.eks. give et bud på hvad "viderestilling" er ?
Nu blev jeg lidt nysgerrig... forward declaration?
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 10:43 |
|
"Jakob Møbjerg Nielsen" <jakob@dataloger.dk> wrote
> > Desuden er den temmelig dårlig i sit valg af oversatte ord. Hvem
> > tør f.eks. give et bud på hvad "viderestilling" er ?
>
> Nu blev jeg lidt nysgerrig... forward declaration?
>
Udemærket bud - men desværre.
Jeg ved faktisk ikke præcist hvad det er - selvom jeg sidder med bogen i
hånden.
Jeg ved blot at jeg bliver forvirret, når jeg prøver at finde ud af hvad der
menes.
I lang tid troede jeg det var arv - bl.a. i morges.
Dernæst troede jeg det var virtuelle funktioner - men kunne ikke få det til
at passe.
Lige nu forekommer det mig at dække over en række individuelle emner, hvor
der er et objekt der blot sender funktionskald.
Bl.a. dækker viderestilling over forskellige former for smart pointere.
"Multipel viderestilling" ligner meget Visitor patternet.
Jeg har set såvel mange former for smart pointere og Visitor patternet i
forskellige former beskrevet mange steder, uden at jeg er blevet tilsvarende
forvirret.
Venlig hilsen
Mogens Hansen
| |
Jakob Møbjerg Nielse~ (05-06-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 05-06-02 11:39 |
|
> I lang tid troede jeg det var arv - bl.a. i morges.
> Dernæst troede jeg det var virtuelle funktioner - men kunne
> ikke få det til at passe.
> Lige nu forekommer det mig at dække over en række
> individuelle emner, hvor der er et objekt der blot sender
> funktionskald.
> Bl.a. dækker viderestilling over forskellige former for smart
> pointere. "Multipel viderestilling" ligner meget Visitor patternet.
Skal det forstås sådan at oversætteren ikke er konsekvent med sit
ordbrug? Eller bare at han skriver forvirrende?
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 13:15 |
|
"Jakob Møbjerg Nielsen" <jakob@dataloger.dk> wrote
> Skal det forstås sådan at oversætteren ikke er konsekvent med sit
> ordbrug? Eller bare at han skriver forvirrende?
>
Måske begge dele samtidig.
Prøv at downloade kapitel 1 fra
http://bog.ing.dk/default.asp?Action=Details&ISBN=87-571-2216-4
Læs den første side.
Den starter med en dårlig oversættelse: "Hvorfor nok en bog om C++ ?".
Jeg mener at det på dansk hedder "Hvorfor endnu en bog om C++ ?"
Derefter starter den med et, efter min smag, utroligt dårligt forsøg på at
være morsom, nemlig ved at påstå at der findes 2.768.942 bøger, kurser etc.
om C++, og de 2.768.940 er ens og der ikke findes nogen avancerede bøger om
C++.
Den fortsætter i en selvhøjtidelig, påtaget morsom stil, med "Du har
formentlig en kopi af Stroustrups "Annotated C++ Reference Manual" og
citerer fra den i flæng, uden at gøre dig den ulejlighed at forklare
detaljerne for den undrende pøbel.", hvorefter han foreslår en alternativ
titel til bogen er "Guruens vej til C++", hvilket jeg overhovedet ikke kan
se at den skulle være.
Et par sider senere fremhæves tre superbe ideer i C++:
* Viderestilling
* Sammenhængende klassehierakier
* Lagerstyring
og så er det jeg slet ikke kan danne mig et billede af hvad det er der skal
fortælles - det havde jeg umiddelbart troet jeg kunne.
Når jeg så kigger lidt videre på det, forekommer det mig at grupperingen
"viderestilling" dækker over en række design, der dækker over et fællestræk
i _implementeringen_, nemlig at klasserne har one-liner funktioner, der
forwarder funktionskald til andre objekter.
Det forekommer mig at være besynderligt at smart-pointere og Visitor design
pattern er beslægtet, så man har brug for at gruppere dem sammen under
begrebet "viderestilling". Det er jo vidt forskellige designproblemer de
sigter mod.
Måske er ordet "viderestilling" ikke dårligt valgt, set fra et
oversættelsessynpunkt. Men grupperingen syntes jeg er dårligt fra et design-
og formidlings-synspunkt.
Kapitlet slutter af med noget vrøvl om at skrive virtuelle metoder som
inline, og compilere der ikke kan håndtere det korrekt.
Jeg kan desværre ikke være andet end temmelig hård i min kritik af bogen.
Venlig hilsen
Mogens Hansen
| |
Jakob Møbjerg Nielse~ (05-06-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 05-06-02 15:57 |
|
> Den starter med en dårlig oversættelse: "Hvorfor nok en bog om C++ ?".
> Jeg mener at det på dansk hedder "Hvorfor endnu en bog om C++ ?"
En anden ting jeg studsede over, var: "Hvis du kan genkende sig selv –
velkommen, kom bare indenfor".
> og de 2.768.940 er ens og der ikke findes nogen avancerede bøger om
> C++.
Hvilket IMHO er direkte fejlinformerende.
> Den fortsætter i en selvhøjtidelig,
Også i den grad
Jeg synes den beskriver sig selv som værende den eneste bog der
retfærdiggør den dybereliggende filosofi/subkultur i C++ design.
Desuden for jeg en fornemmelse af at han mener at C++ er det eneste
rigtige programmeringssprog, ligegyldigt hvilken opgave der skal løses.
Og minsandten om han ikke også foreslår at høre musik, mens man læser
bogen. Jeg ved ikke med andre, men det plejer at fjerne min
koncentration fra indholdet i bogen.
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
Bertel Lund Hansen (05-06-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 05-06-02 16:00 |
|
Jakob Møbjerg Nielsen skrev:
>Og minsandten om han ikke også foreslår at høre musik, mens man læser
>bogen.
Han må være ung. For nogen er musik vigtigere end koncentration,
og det værste er at de ikke er klar over det. De tror at den let
ukoncentrerede tilstand er den højest opnåelige tilstand af
koncentration.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Jakob Møbjerg Nielse~ (05-06-2002)
| Kommentar Fra : Jakob Møbjerg Nielse~ |
Dato : 05-06-02 16:21 |
|
> Han må være ung.
Hmmm... jeg synes da selv at jeg er rimelig ung (22 , men føler at
jeg godt kan adskille koncentration og distrahering.
> For nogen er musik vigtigere end koncentration,
> og det værste er at de ikke er klar over det.
?? Mener du hermed at "nogen" *bør* høre musik under læsning?
--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man
| |
Bertel Lund Hansen (05-06-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 05-06-02 16:26 |
|
Jakob Møbjerg Nielsen skrev:
>> For nogen er musik vigtigere end koncentration,
>> og det værste er at de ikke er klar over det.
>?? Mener du hermed at "nogen" *bør* høre musik under læsning?
Nej. Jeg mener at de aldrig har undersøgt konsekvensen af at høre
musik eller overhovedet tænkt på at der kunne være en grund til
det.
Men der *er* nogen der bør høre musik når de læser - nemlig dem
der bor et sted med distraherende støj.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 13:29 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:adk8kj$lql$1@news.cybercity.dk...
> > Er der nogen der kan anbefale en god C++ bog for begyndere ?
> Nej, desværre.
> Der findes efter min bedste overbevisning ikke en god dansk C++ bog
for
> begyndere - og jeg har puttet en del energi i at undersøge det.
Enig.
> Et par bud på danske bøger er:
>
> C++, dataabstraktion og objekt-orienteret programmering
> Maz Spork
> ISBN 87-502-0729-6
> den er fra 1991.
Det er helt sikkert ikke en begynder bog (som du også selv siger). Det
retter sig vist mere imod C programmører, der gerne vil skifte til C++.
> C++
> Kris Jamsa
> ISBN 87-7843-265-0
> Den er simpelthen fyldt med banale fejl, og mange rigtigt dårlige råd.
> Se eventuelt mine tidligere kommentarer om den bog:
Den er vist ok, men kun som en start bog eftersom den er meget kort.
> Min konklussion er at på nuværende tidspunkt er man bedre tjent med at
> acceptere at der ikke findes gode bøger om C++ på dansk, og derfor
vende sig
> mod de engelske.
Her kan jeg varmt anbefale "C++ from the ground up".
mvh
db
| |
Morten Boysen (05-06-2002)
| Kommentar Fra : Morten Boysen |
Dato : 05-06-02 13:44 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote in message
news:adl06c$2mc$1@sunsite.dk...
> Her kan jeg varmt anbefale "C++ from the ground up".
Neeeeeeeeeeeeeeeeej!!
Den bog kan *absolut* ikke anbefales!
http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0au_s&file=cp001508a
Problemet med C++ From The Ground Up er at den slet ikke viser, *hvad*
man kan bruge de forskellige sprogkonstruktioner til. Den viser kun
*hvordan* man skal bruge dem. Derudover forfatterens
programmeringsstil næppe noget, som bør kopieres. Som Mogens Hansen og
andre har sagt, så er Accelerated C++ en superb bog.
--
Morten Boysen
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 13:48 |
|
"Morten Boysen" <morten.boysen@aub.dk> wrote in message
news:adl11u$5l6$1@sunsite.dk...
> "Daniel Blankensteiner" <db@traceroute.dk> wrote in message
> news:adl06c$2mc$1@sunsite.dk...
> > Her kan jeg varmt anbefale "C++ from the ground up".
>
>
> Neeeeeeeeeeeeeeeeej!!
Nååååååååååååååå
> Den bog kan *absolut* ikke anbefales!
>
> http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0au_s&file=cp001508a
>
> Problemet med C++ From The Ground Up er at den slet ikke viser, *hvad*
> man kan bruge de forskellige sprogkonstruktioner til. Den viser kun
> *hvordan* man skal bruge dem. Derudover forfatterens
> programmeringsstil næppe noget, som bør kopieres. Som Mogens Hansen og
> andre har sagt, så er Accelerated C++ en superb bog.
Hm, måske skulle jeg prøve at købe ovenstående så.
mvh
db
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 14:01 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote
> "Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
> news:adk8kj$lql$1@news.cybercity.dk...
> > C++
> > Kris Jamsa
> > ISBN 87-7843-265-0
> > Den er simpelthen fyldt med banale fejl, og mange rigtigt dårlige råd.
> > Se eventuelt mine tidligere kommentarer om den bog:
>
> Den er vist ok, men kun som en start bog eftersom den er meget kort.
Er du uenig i udsagnet "den er simpelthen fyld med banale fejl, og mange
rigtigt dårlige råd", sådan som jeg har beskrevet i
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scoring=d&
selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3
vurderet på baggrund af det sample kapitel, der frit kan downloades ?
I bekræftende fald, hvilke konkrete kommentarer er du uenig i ?
Venlig hilsen
Mogens Hansen
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 20:06 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:adl1sk$1nsi$1@news.cybercity.dk...
> > > C++
> > > Kris Jamsa
> > > ISBN 87-7843-265-0
> > > Den er simpelthen fyldt med banale fejl, og mange rigtigt dårlige
råd.
> > > Se eventuelt mine tidligere kommentarer om den bog:
> >
> > Den er vist ok, men kun som en start bog eftersom den er meget kort.
>
> Er du uenig i udsagnet "den er simpelthen fyld med banale fejl, og
mange
> rigtigt dårlige råd", sådan som jeg har beskrevet i
>
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scorin
g=d&
> selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3
> vurderet på baggrund af det sample kapitel, der frit kan downloades ?
> I bekræftende fald, hvilke konkrete kommentarer er du uenig i ?
Taler vi ikke om et hæfte på lidt over 100 sider?
mvh
db
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 21:33 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote
> Taler vi ikke om et hæfte på lidt over 100 sider?
>
Er størrelsen en undskyldning for at opfordre til at bruge preprocessoren
til konstruktioner, hvor langt bedre løsninger findes ?
Er størrelsen en undskyldning for at lære folk at main returner void ?
Er størrelsen en undskyldning for at lære folk at lave undefined behaviour
ved at at bruge delete (og ikke delete []), når man har brugt new [] ?
Er størrelsen en undskyldning for at bruge den gamle form for include, når
hæftet er udgivet efter C++ Standarden blev vedtaget, og længe efter
beslutningen om ændringen var lavet ?
Personligt syntes jeg man bør have et højere ambitionsniveau.
Derfor anbefaler jeg normalt kilder med et højere kvalitetsniveau, hvis
nogen vil bruge deres værdifulde tid på at lære C++.
Og jeg har ikke dårlig samvittighed overfor forlagene ved at kritisere deres
udgivelser på en saglig måde.
Jeg er oprigtigt ked af at konstatere at der ikke findes bedre begynder
bøger om C++ på dansk.
Venlig hilsen
Mogens Hansen
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 20:36 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:adl1sk$1nsi$1@news.cybercity.dk...
> Er du uenig i udsagnet "den er simpelthen fyld med banale fejl, og
mange
> rigtigt dårlige råd", sådan som jeg har beskrevet i
>
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scorin
g=d&
> selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3
> vurderet på baggrund af det sample kapitel, der frit kan downloades ?
> I bekræftende fald, hvilke konkrete kommentarer er du uenig i ?
Ok har lige set det. Bogen er ikke skrevet for at fortælle om design og
den rigtige brug af de forskellige ting, men kun for at vise hvad man
kan med C++. Jeg ser det ikke som en seriøs bog, men bare som en "Er C++
mon noget for mig"-bog. (det er jo bare et lille hæfte til 89 kr).
Jeg har set du retter lidt på forfatteren og vil derfor lige spørge
hvorfor du benytter strcpy()?, svjv har den et problem med buffer
overflow.
mvh
db
| |
J. Martin Petersen (05-06-2002)
| Kommentar Fra : J. Martin Petersen |
Dato : 05-06-02 20:53 |
|
"Daniel Blankensteiner" <db@traceroute.dk> writes:
> Jeg har set du retter lidt på forfatteren og vil derfor lige spørge
> hvorfor du benytter strcpy()?, svjv har den et problem med buffer
> overflow.
Det er vel sagtens fordi det oprindelige eksempel benytter strcpy. Det
rettede eksempel efterfølges da også af et, der ikke benytter strcpy.
Men det er selvfølgelig kun gisninger.
--
J. Martin Petersen "Atter springer gnuerne ud i vandet..."
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 21:01 |
|
"J. Martin Petersen" <jmp@spam.alvorlig.dk> wrote in message
news:uofep8pv9.fsf@spam.alvorlig.dk...
> "Daniel Blankensteiner" <db@traceroute.dk> writes:
>
> > Jeg har set du retter lidt på forfatteren og vil derfor lige spørge
> > hvorfor du benytter strcpy()?, svjv har den et problem med buffer
> > overflow.
>
> Det er vel sagtens fordi det oprindelige eksempel benytter strcpy. Det
> rettede eksempel efterfølges da også af et, der ikke benytter strcpy.
>
> Men det er selvfølgelig kun gisninger.
Fra:
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scorin
g=d&selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3
Den korrekt udgave vil være
#include <iostream>
#include <cstring>
int main(void)
{
using std::cout; using std::endl;
using std::strcpy;
char *pointer = new char[100];
strcpy(pointer, "Jeg programmerer i C++");
cout << pointer << endl;
delete [] pointer;
}
mvh
db
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 21:36 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote
> Den korrekt udgave vil være
Netop - _korrekt_ syntaktisk og semantisk i henhold til sprogdefinitionen.
_Korrekt_ i forhold til et _ikke_ korrekt eksempel fra bogen
Korrekt er ikke det samme som anbefalelsesværdig.
Venlig hilsen
Mogens Hansen
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 21:03 |
|
"J. Martin Petersen" <jmp@spam.alvorlig.dk> wrote in message
news:uofep8pv9.fsf@spam.alvorlig.dk...
> "Daniel Blankensteiner" <db@traceroute.dk> writes:
>
> > Jeg har set du retter lidt på forfatteren og vil derfor lige spørge
> > hvorfor du benytter strcpy()?, svjv har den et problem med buffer
> > overflow.
>
> Det er vel sagtens fordi det oprindelige eksempel benytter strcpy. Det
> rettede eksempel efterfølges da også af et, der ikke benytter strcpy.
Ups undskylder, det er rigtigt det du siger
mvh
db
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 21:28 |
|
"Daniel Blankensteiner" <db@traceroute.dk> wrote
[snip]
> Ok har lige set det. Bogen er ikke skrevet for at fortælle om design og
> den rigtige brug af de forskellige ting, men kun for at vise hvad man
> kan med C++.
Mener du virkeligt at nogen skriver en bog om C++, uden at have det mål at
lære folk hvordan man bruger det _rigtigt_ ?
Vi snakker om helt formelt korrekt syntaktisk og semantisk, og ikke noget
med god smag eller "det er pænere hvis .."
Det helt formelle korrekte opfylder bogen så afgjort ikke - og det er ikke
bare en enkelt uheldig smutter, som der jo altid vil være i en bog.
> Jeg ser det ikke som en seriøs bog, men bare som en "Er C++
> mon noget for mig"-bog. (det er jo bare et lille hæfte til 89 kr).
>
En lille og billig introduktion er da al ære og respekt værd.
Men det kan gøres både korrekt og med bedre smag.
> Jeg har set du retter lidt på forfatteren og vil derfor lige spørge
> hvorfor du benytter strcpy()?, svjv har den et problem med buffer
> overflow.
>
strcpy har kun et problem med buffer overflow, hvis bufferen er for lille
/-)
I eksemplet blev der brugt en buffer på 100 tegn til at kopiere 23 tegn over
i - det er der ikke noget problemer i.
Jeg benyttede _ikke_ til at bruge strcpy i indlægget - tværtimod.
Kig på jeg skrev med strcpy een gang til - jeg har sat de ind nedenfor.
Jeg rettede Kris Jamsa's fejlbehæftede eksempel i 2 trin:
1. gør programmet til korrekt C++ med veldefineret opførsel.
2. angiver hvordan man nemmere og sikrere kan få samme opførsel - uden
brug af strcpy, new og delete.
Den fremgangsmåde syntes jeg ikke der kan sættes en finger på.
<citat fra
http://groups.google.com/groups?q=%22Mogens+Hansen%22+dansk&hl=da&scoring=d&
selm=9uj6rp%242qqf%241%40news.cybercity.dk&rnum=3>
Et andet eksempl
#include <iostream.h>
#include <string.h>
void main(void)
{
char *pointer = new char[100];
strcpy(pointer, "Jeg programmerer i C++");
cout << pointer << endl;
delete pointer;
}
Kommentarer:
* Igen den gamle form for include.
* Igen main returner altid int
* Bogen lærer hurtigt folk at bruge dynamisk allokering og pointere, når
simplere løsninger findes
* Programmet har virker ikke med garanti.
Det er "undefined behaviour" at allokere med new array og ikke frigive
med delete array.
Den korrekt udgave vil være
#include <iostream>
#include <cstring>
int main(void)
{
using std::cout; using std::endl;
using std::strcpy;
char *pointer = new char[100];
strcpy(pointer, "Jeg programmerer i C++");
cout << pointer << endl;
delete [] pointer;
}
En bedre udgave til være
#include <iostream>
#include <string>
int main(void)
{
using std::cout; using std::endl;
using std::string;
string text("Jeg programmerer i C++");
cout << text << endl;
}
<citat/>
Venlig hilsen
Mogens Hansen
| |
Daniel Blankensteine~ (05-06-2002)
| Kommentar Fra : Daniel Blankensteine~ |
Dato : 05-06-02 21:36 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:adlsc5$39t$1@news.cybercity.dk...
> > Ok har lige set det. Bogen er ikke skrevet for at fortælle om design
og
> > den rigtige brug af de forskellige ting, men kun for at vise hvad
man
> > kan med C++.
>
> Mener du virkeligt at nogen skriver en bog om C++, uden at have det
mål at
> lære folk hvordan man bruger det _rigtigt_ ?
Det ser sådan ud.
> > Jeg ser det ikke som en seriøs bog, men bare som en "Er C++
> > mon noget for mig"-bog. (det er jo bare et lille hæfte til 89 kr).
> >
>
> En lille og billig introduktion er da al ære og respekt værd.
> Men det kan gøres både korrekt og med bedre smag.
Jep. Jeg havde ikke lagt mærke til de fejl, men det var nok fordi det
var den første C++ bog jeg læste.
mvh
db
| |
Bertel Lund Hansen (05-06-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 05-06-02 15:33 |
|
Mogens Hansen skrev:
>Det er min opfattelse at
> Accelerated C++
>...
Kender du Jan Skansholms "C++ from the Beginning"? Den har vi
brugt på vores studium, og den er ikke dårlig, men jeg ved ikke
nok om C++ til at kunne vurdere den i forhold til de andre bøger
(som jeg heller ikke har læst endnu).
Det er muligt at manden hedder "Skånsholm". Han er svensk, men
bogen er amerikansk (Addison-Wesley).
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 15:46 |
|
"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote
>
> Kender du Jan Skansholms "C++ from the Beginning"?
Nej, men man kan kigge forbi www.accu.org, som har mange gode
boganmeldelser.
Den står som "Recommended" på
http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0au_s&file=cp000030a
> Den har vi
> brugt på vores studium, og den er ikke dårlig, men jeg ved ikke
> nok om C++ til at kunne vurdere den i forhold til de andre bøger
> (som jeg heller ikke har læst endnu).
>
Må jeg spørge hvilket studie (jeg mener du har fortalt det før, men jeg kan
ikke det) og hvor ?
Venlig hilsen
Mogens Hansen
| |
Mogens Hansen (05-06-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 05-06-02 16:02 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> wrote
>
> "Bertel Lund Hansen" <nospam@lundhansen.dk> wrote
>
> > Den har vi
> > brugt på vores studium, og den er ikke dårlig, men jeg ved ikke
> > nok om C++ til at kunne vurdere den i forhold til de andre bøger
> > (som jeg heller ikke har læst endnu).
> >
>
> Må jeg spørge hvilket studie (jeg mener du har fortalt det før, men jeg
kan
> ikke det) og hvor ?
>
Det er muligvis upassende at lægge den slag oplysninger på en nyhedsgruppe.
Men hvis du har lyst, kan du sende det til mig privat.
Venlig hilsen
Mogens Hansen
| |
Bertel Lund Hansen (05-06-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 05-06-02 16:29 |
|
Mogens Hansen skrev:
>Det er muligvis upassende at lægge den slag oplysninger på en nyhedsgruppe.
I du milde kineser, jeg har slet ikke den slags spekulationer.
Jeg er i øvrigt i lille målestok en offentlig person.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Bertel Lund Hansen (05-06-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 05-06-02 16:05 |
|
Mogens Hansen skrev:
>Må jeg spørge hvilket studie
Datamatiker ved Horsens Handelsskole. Bogen bruges til valgfaget
C++.
Jeg ville gerne have anbefalet min lærers hjemmeside som ligger
på
http://trispect.dk/
men desværre er han blevet offer for Struernets overgang til en
anden server og en generel omlægning (det er den venlige version)
af deres system.
Han havde ellers lagt en semesterplan og supplerende opgaver
frem.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Per Abrahamsen (14-06-2002)
| Kommentar Fra : Per Abrahamsen |
Dato : 14-06-02 13:40 |
|
Bertel Lund Hansen <nospam@lundhansen.dk> writes:
> Mogens Hansen skrev:
>
>>Det er muligvis upassende at lægge den slag oplysninger på en nyhedsgruppe.
>
> I du milde kineser, jeg har slet ikke den slags spekulationer.
> Jeg er i øvrigt i lille målestok en offentlig person.
Lille målestok? Du har haft dit blå fjæs over en halv forside på
Politiken
| |
Bertel Lund Hansen (14-06-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 14-06-02 15:01 |
| | |
Per Abrahamsen (14-06-2002)
| Kommentar Fra : Per Abrahamsen |
Dato : 14-06-02 13:45 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> writes:
> Desuden er den temmelig dårlig i sit valg af oversatte ord. Hvem tør f.eks.
> give et bud på hvad "viderestilling" er ?
Her! Her!
Jeg gætter på "delegation", et OO buzzword der var moderne i min
ungdom. Det kunne også være "indirection", som egentlig er det samme,
men alrig opnåede status af buzzword.
| |
|
|