/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
problemer med fstream
Fra : KM


Dato : 13-02-06 20:09

Hej gruppe.

Jeg har en undeligt problem med fstream. Jeg har lave et simpelt test
program, der indkluderer fstream og dette program opretter faktisk en
fil.

#include <cstdlib>
#include <iostream> //cout og endl
#include <fstream>

using namespace std;

void writeTextFile();

int main(int argc, char *argv[])
{
writeTextFile();
system("PAUSE");
return EXIT_SUCCESS;
}

void writeTextFile()
{
ofstream oFil;
oFil.open("test.txt");
oFil << "denne linie skrives til filenxxx\n";
oFil.close();
}

Nu har jeg så oprettet en klasse, der indeholder en pointer til en
ifstream, men så brokker kompileren (bruger Dev-Cpp 4.9.9.2) sig maks.

Her er kildekoden:
main.cpp

#include <cstdlib>
#include <iostream>

#include "DbfFile.h"

using namespace std;

int main(int argc, char *argv[])
{
DbfFile oFile;
system("PAUSE");
return EXIT_SUCCESS;
}

DbfFile.h:

#pragma once
class DbfFile
{
public:
//Constructor
DbfFile();
//Destructor
~DbfFile();

ifstream *pFile; (se kompilerfejl 1 og 2)

int iRecords;

int iRecordLength;
};

DbfFile.cpp:

#include <cstdlib>
#include <iostream> //cout og endl
#include <fstream>

#include "DbfFile.h"

using namespace std;
DbfFile::DbfFile()
{
//constructor implementering
cout << "dbffile constructor" << endl;
}

DbfFile:DbfFile()
{
//destructor implementering
cout << "dbffile destructor" << endl;
if (pFile != NULL)
{
delete pFile;
}
}

Kompilerfejl 1)
ISO C++ forbids declaration of `ifstream' with no type

Kompilerfejl 2)
expected `;' before '*' token

Det er som om, kompileren ikke kan genkende fstream i klassendefinition
til trods for, at den er inkluderet i DbfFile.h

Gode råd/ideer modtages meget gerne

På forhånd tak
Kåre Rasmussen



 
 
Mogens Hansen (13-02-2006)
Kommentar
Fra : Mogens Hansen


Dato : 13-02-06 20:51


"KM" <kmr@ddh-data.dk> wrote in message
news:43f0d952$0$47019$edfadb0f@dread15.news.tele.dk...

[8<8<8<]
> Det er som om, kompileren ikke kan genkende fstream i klassendefinition
> til trods for, at den er inkluderet i DbfFile.h

I den fil-listning du viser er den ikke includeret, sa ...
Iovrigt skal du skrive klassen med namespace:

// ...
std::fstream* file
//...

i din header-fil. Ikke noget med "using namespace" i en header-fil.

Venlig hilsen

Mogens Hansen



KM (13-02-2006)
Kommentar
Fra : KM


Dato : 13-02-06 21:07

Mogens Hansen wrote:

>
> "KM" <kmr@ddh-data.dk> wrote in message
> news:43f0d952$0$47019$edfadb0f@dread15.news.tele.dk...
>
> [8<8<8<]
> > Det er som om, kompileren ikke kan genkende fstream i klassendefinition
> > til trods for, at den er inkluderet i DbfFile.h
>
> I den fil-listning du viser er den ikke includeret, sa ...
> Iovrigt skal du skrive klassen med namespace:
>
> // ...
> std::fstream* file
> //...
>
> i din header-fil. Ikke noget med "using namespace" i en header-fil.
>
> Venlig hilsen
>
> Mogens Hansen
>
Mange tak for hjælpen. Jeg var ikke klar over, at man også skulle
include i h-filen. Er det iøvrigt imod ISO standarden at bruge
using namespace std;
i en header fil???

Mvh.
Kåre


Kent Friis (13-02-2006)
Kommentar
Fra : Kent Friis


Dato : 13-02-06 21:09

Den Mon, 13 Feb 2006 21:06:53 +0100 skrev KM:
> Mogens Hansen wrote:
>
>>
>> "KM" <kmr@ddh-data.dk> wrote in message
>> news:43f0d952$0$47019$edfadb0f@dread15.news.tele.dk...
>>
>> [8<8<8<]
>> > Det er som om, kompileren ikke kan genkende fstream i klassendefinition
>> > til trods for, at den er inkluderet i DbfFile.h
>>
>> I den fil-listning du viser er den ikke includeret, sa ...
>> Iovrigt skal du skrive klassen med namespace:
>>
>> // ...
>> std::fstream* file
>> //...
>>
>> i din header-fil. Ikke noget med "using namespace" i en header-fil.
>>
>> Venlig hilsen
>>
>> Mogens Hansen
>>
> Mange tak for hjælpen. Jeg var ikke klar over, at man også skulle
> include i h-filen. Er det iøvrigt imod ISO standarden at bruge
> using namespace std;
> i en header fil???

Nej, men det er dumt, fordi alt hvad der inkluderer headeren så
vil få using std med også. Hvis du så har noget eksisterende kode,
som skal udvides til at bruge en af funktionerne fra header-filen,
og tilføjer headeren, kan du risikere den eksisterende kode holder
op med at virke, og du får en million fejl bare fordi du har tilføjet
en #include der tilfældigvis hev et namespace ind som ikke var
forventet i koden.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Mogens Hansen (13-02-2006)
Kommentar
Fra : Mogens Hansen


Dato : 13-02-06 21:12


"KM" <kmr@ddh-data.dk> wrote in message
news:43f0e6dd$0$47068$edfadb0f@dread15.news.tele.dk...

[8<<8<8]
> Mange tak for hjælpen. Jeg var ikke klar over, at man også skulle
> include i h-filen.

Det er altid en god idee at header-filer udformes sadan at de har mindst
mulig kobling, men samtidig kan oversattes selvstandigt.

> Er det iøvrigt imod ISO standarden at bruge
> using namespace std;
> i en header fil???

Nej - headerfiler handteres (principielt) af preprocessoren der blot laver
een stor fil.

Det er bare en rigtig darlig idee fordi man overhovedet ikke kan overskue
konsekvensen af det nar andre includerer ens fil.

Venlig hilsen

Mogens Hansen



Thorsten Ottosen (13-02-2006)
Kommentar
Fra : Thorsten Ottosen


Dato : 13-02-06 21:27

Mogens Hansen wrote:
> "KM" <kmr@ddh-data.dk> wrote in message
> news:43f0e6dd$0$47068$edfadb0f@dread15.news.tele.dk...

>>Er det iøvrigt imod ISO standarden at bruge
>>using namespace std;
>>i en header fil???
>
>
> Nej - headerfiler handteres (principielt) af preprocessoren der blot laver
> een stor fil.
>
> Det er bare en rigtig darlig idee fordi man overhovedet ikke kan overskue
> konsekvensen af det nar andre includerer ens fil.

Jeg vil faktisk mene, at man bør undgå en using-declaration selv i
en .cpp fil. Et namespace beskytter kun hvis det bruges som prefix.

Med lange namespaces kan man bruge et alias:

namespace f = foo::bar::foo_bar;

Thorsten

Bertel Brander (13-02-2006)
Kommentar
Fra : Bertel Brander


Dato : 13-02-06 20:55

KM wrote:
> Det er som om, kompileren ikke kan genkende fstream i klassendefinition
> til trods for, at den er inkluderet i DbfFile.h
>
> Gode rĺd/ideer modtages meget gerne

I DbfFile.h er std namespace ikke inkluderet.

Du kan løse det ved at tilføje denne linie til toppen af dbffile.h:
using namespace std;

Eller skrive std:: foran ifstream *pFile;

I øvrigt var det nok kønnere om dbffile.h selv inkluderede fstream

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Mogens Hansen (13-02-2006)
Kommentar
Fra : Mogens Hansen


Dato : 13-02-06 20:59


"Bertel Brander" <bertel@post4.tele.dk> wrote in message
news:43f0e418$0$199$edfadb0f@dread16.news.tele.dk...

[8<8<8<]
> Du kan løse det ved at tilføje denne linie til toppen af dbffile.h:
> using namespace std;

Det bør man _aldrig_ gøre - det sætter hele namespace mekanismen ud af
kraft.
Se f.eks. item 59 i
C++ Coding Standards
Herb Sutter, Andrei Alexandrescu
ISBN 0-321-11358-6

Venlig hilsen

Mogens Hansen



Bertel Brander (13-02-2006)
Kommentar
Fra : Bertel Brander


Dato : 13-02-06 22:35

Mogens Hansen wrote:
> "Bertel Brander" <bertel@post4.tele.dk> wrote in message
> news:43f0e418$0$199$edfadb0f@dread16.news.tele.dk...
>
> [8<8<8<]
>> Du kan løse det ved at tilføje denne linie til toppen af dbffile.h:
>> using namespace std;
>
> Det bør man _aldrig_ gøre - det sætter hele namespace mekanismen ud af
> kraft.

Jeg har altid ment at hele brug af namespace eller ikke er et
spørgsmål om smag og behag. Hvis man ved hvad man gør ser jeg
ingen problem i at sætte det ud af kraft én gang for alle.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Mogens Hansen (14-02-2006)
Kommentar
Fra : Mogens Hansen


Dato : 14-02-06 06:20


"Bertel Brander" <bertel@post4.tele.dk> wrote in message
news:43f0fb75$0$149$edfadb0f@dread16.news.tele.dk...
> Mogens Hansen wrote:

[8<8<8<]
> Jeg har altid ment at hele brug af namespace eller ikke er et
> spørgsmål om smag og behag.

Der er bestemt objektive begrundelser for ikke at skrive "using namespace
...." i header filer eller før sidste "include".

> Hvis man ved hvad man gør ser jeg
> ingen problem i at sætte det ud af kraft én gang for alle.

Et af problemerne er at man næsten ikke kan vide hvad man gør, fordi man kan
ikke overskue hvilke filer der includerer ens header-fil nu og i al fremtid

Venlig hilsen

Mogens Hansen



Thorsten Ottosen (14-02-2006)
Kommentar
Fra : Thorsten Ottosen


Dato : 14-02-06 22:40

Mogens Hansen wrote:
> "Bertel Brander" <bertel@post4.tele.dk> wrote in message
> news:43f0fb75$0$149$edfadb0f@dread16.news.tele.dk...
>

>>Hvis man ved hvad man gør ser jeg
>>ingen problem i at sætte det ud af kraft én gang for alle.

hm.

> Et af problemerne er at man næsten ikke kan vide hvad man gør, fordi man kan
> ikke overskue hvilke filer der includerer ens header-fil nu og i al fremtid

Jeg er enig med Mogens her.

Problemet kan også være meget værre end man umiddelbart tror når ADL
blandes ind i sagen.

Den bedste måde at gøre sin kode robust på (overfor uheldige ændringer)
er at bruge et namespace prefix.

-Thorsten

Bertel Brander (15-02-2006)
Kommentar
Fra : Bertel Brander


Dato : 15-02-06 20:08

Mogens Hansen wrote:

>> Hvis man ved hvad man gør ser jeg
>> ingen problem i at sætte det ud af kraft én gang for alle.
>
> Et af problemerne er at man næsten ikke kan vide hvad man gør, fordi man kan
> ikke overskue hvilke filer der includerer ens header-fil nu og i al fremtid

Det er naturligvis en afvejning; enten skrive std:: igen og igen
i alle sine header-filer fra starten eller vente med at gøre det
til der evt. opstår et problem.

For ens egne små projekter og for mange lidt større projekter
mener jeg at balancen tipper til at bruge using namespace std,
fordi det er det letteste, og fordi det ikke giver nævneværdige
problemer, og skulle problemet opstå bør enhver kunne rette
header-filerne med en hastighed på ikke under 100 linier i
minuttet.

Og der er stadig folk der bruger compilere der ikke understøtter
namespace, og så er std:: en million steder en pest.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Ivan Johansen (15-02-2006)
Kommentar
Fra : Ivan Johansen


Dato : 15-02-06 21:12

Bertel Brander wrote:
> Det er naturligvis en afvejning; enten skrive std:: igen og igen
> i alle sine header-filer fra starten eller vente med at gøre det
> til der evt. opstår et problem.

Har du rent faktisk læst item 59 som Mogens henviser til? Jeg vil også
anbefale item 40 i More Exceptional C++ af Herb Sutter.

Jeg kunne ikke drømme om at bruge kode fra en som skriver using
namespace i en headerfil. Det vil sætte namespaces ud af kraft for al
min kode. Ellers skal jeg til at rette fejl i andres filer hvilket er et
vedligeholdelsesmareridt eller måske slet ikke muligt.

> For ens egne små projekter og for mange lidt større projekter
> mener jeg at balancen tipper til at bruge using namespace std,
> fordi det er det letteste, og fordi det ikke giver nævneværdige
> problemer,

Min erfaring er at hvis man vender sig til at skrive fejlfyldt kode i
små projekter så gør man det også i større. Og det er faktisk ikke
særligt svært at skrive std::

> og skulle problemet opstå bør enhver kunne rette
> header-filerne med en hastighed på ikke under 100 linier i
> minuttet.

Det tror jeg ikke jeg kan. Når compileren kommer med flere tusinde
uforståelige fejlmeddelser bare fordi jeg inkluderede en headerfil tager
det temmelig lang tid at rette alle fejlene i den pågældende fil. Og i
næste version er alle fejlene der igen.

Til gengæld kan enhver editor lave søg-og-erstat og fjerne std:: på
ingen tid.

Desuden har jeg fundet ud af at det er hurtigst at skrive koden korrekt
fra starten i stedet for at skulle bruge tid på at rette et dårligt
design senere.

> Og der er stadig folk der bruger compilere der ikke understøtter
> namespace, og så er std:: en million steder en pest.

Så er det ikke en C++ compiler og så kan det nok være lige meget.

Ivan Johansen

Bertel Brander (15-02-2006)
Kommentar
Fra : Bertel Brander


Dato : 15-02-06 23:57

Ivan Johansen wrote:
> Bertel Brander wrote:
>> Det er naturligvis en afvejning; enten skrive std:: igen og igen
>> i alle sine header-filer fra starten eller vente med at gøre det
>> til der evt. opstår et problem.
>
> Har du rent faktisk læst item 59 som Mogens henviser til? Jeg vil også
> anbefale item 40 i More Exceptional C++ af Herb Sutter.
>
> Jeg kunne ikke drømme om at bruge kode fra en som skriver using
> namespace i en headerfil. Det vil sætte namespaces ud af kraft for al
> min kode. Ellers skal jeg til at rette fejl i andres filer hvilket er et
> vedligeholdelsesmareridt eller måske slet ikke muligt.

Jeg tror egentlig ikke at vi kommer ret meget videre.

Selv jeg har for længst vænnet mig til at skive std:: hver gang
(se blot koden på min hjemmmeside).

Det der triggede mig var den sædvanglige "politiske korrekte" reaktion:
"Skriv _aldrig_ using namespace std; i en header-fil."
Verden er ikke så enkel, og det er ikke verdens største problem.

Med hensyn til at ikke ville bruge kode der skiver "de forbudte ord"
i en headerfil: En af de væsentligste grunde til at jeg aldrig har
brugt boost, er deres 12394 namespaces.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Thorsten Ottosen (16-02-2006)
Kommentar
Fra : Thorsten Ottosen


Dato : 16-02-06 01:10

Bertel Brander wrote:

> Med hensyn til at ikke ville bruge kode der skiver "de forbudte ord"
> i en headerfil: En af de væsentligste grunde til at jeg aldrig har
> brugt boost, er deres 12394 namespaces.

Som en af udviklerne bag boost, så er jeg selvfølgelig ked at høre, at
namespaces er grunden til at du ikke bruger boost.

Vi er simpelthen nødt til bruge namespace, eller et andet library
specifik prefix...ellers ville en del deklarationer støde sammen.

En pæn del at koden i boost forekommer i header-filer (det er
selvfølgelig en uheldig konsekvens af C++ uden modules), og den eneste
måde at beskytte mod navnekonflikter er namespaces.

Hvis man ikke kan lide lange namespaces, så kan man jo lave et alias:

namespace ass = boost::assign;

En hel del navne er ofte forekommende i programmering, og således opstår
konflikter let. Jeg ser det faktisk som en fordel når jeg skal
vedligeholder kode, at jeg kan se umiddelbart hvilket namespace
(og dermed hvilket library) en function kommer fra.

Men ellers sp vil jeg da gerne høre om de andre grunde du har til ikke
at bruge boost.

-Thorsten


Bertel Brander (16-02-2006)
Kommentar
Fra : Bertel Brander


Dato : 16-02-06 01:38

Thorsten Ottosen wrote:
> Men ellers sp vil jeg da gerne høre om de andre grunde du har til ikke
> at bruge boost.

Jeg har kun gjort ét ærligt forsøg på at bruge boost. Det var da
jeg havde brug for et reg.exp. lib.

Men koden var alt for uoverskuelig, det kunne knap kompilere med
VC 6.0 sammen med MFC, så jeg gav op.

Fandt i stedet noget gammelt kode som var skrevet i C i 1986.
Det var langt lettere at twiste til at gøre det jeg ville bruge
det til. Jeg lavede en simpel class wrapper til det og bruger
det dagligt, f.ex. i min editor.

Skulle jeg bruge et bibliotek som boost til f.ex. reg.exp skulle
det kunne bruges ved at inkludere én header fil og enten et
lib eller én .cpp fil.

Men som jeg husker det skulle man bruge 10 - 15 header-filer,
20 .cpp-filer og 31 namespaces.

Jeg har set at SmartWin++ inkluderer boost, så det er muligt
at det sniger sig ind ad bagdøren.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Thorsten Ottosen (16-02-2006)
Kommentar
Fra : Thorsten Ottosen


Dato : 16-02-06 16:02

Bertel Brander wrote:
> Thorsten Ottosen wrote:
>
>> Men ellers sp vil jeg da gerne høre om de andre grunde du har til ikke
>> at bruge boost.
>
>
> Jeg har kun gjort ét ærligt forsøg på at bruge boost. Det var da
> jeg havde brug for et reg.exp. lib.
>
> Men koden var alt for uoverskuelig, det kunne knap kompilere med
> VC 6.0 sammen med MFC, så jeg gav op.

jeg har ikke meget erfaring med vc6, men den har været supporteret
for en del af libsne. Jeg ved dog at den halter en del på mange områder.

> Skulle jeg bruge et bibliotek som boost til f.ex. reg.exp skulle
> det kunne bruges ved at inkludere én header fil og enten et
> lib eller én .cpp fil.

Stort set alle libs samler alle includes i een fed header, hvis man
foretrækker det.

En hel del libs bruger slet ikke .cpp filer.

> Men som jeg husker det skulle man bruge 10 - 15 header-filer,
> 20 .cpp-filer og 31 namespaces.

det kan ikke passe fx, så findes <boost/regex.hpp>, men man kan
finde mindre headere i <boost/regex/>

mange libs bruger kun eet namespace: boost, men en del har et extra
inden i boost.

hvis du er ked at at bygge libs manuelt selv, så kan bjam bruges til
gøre det.

hvis du er træt af hele boost, så kan bcp

http://www.boost.org/tools/bcp/bcp.html

udtrække enkelte libs.

-Thorsten

Kent Friis (16-02-2006)
Kommentar
Fra : Kent Friis


Dato : 16-02-06 19:03

Den Wed, 15 Feb 2006 23:57:04 +0100 skrev Bertel Brander:
> Ivan Johansen wrote:
>> Bertel Brander wrote:
>>> Det er naturligvis en afvejning; enten skrive std:: igen og igen
>>> i alle sine header-filer fra starten eller vente med at gøre det
>>> til der evt. opstår et problem.
>>
>> Har du rent faktisk læst item 59 som Mogens henviser til? Jeg vil også
>> anbefale item 40 i More Exceptional C++ af Herb Sutter.
>>
>> Jeg kunne ikke drømme om at bruge kode fra en som skriver using
>> namespace i en headerfil. Det vil sætte namespaces ud af kraft for al
>> min kode. Ellers skal jeg til at rette fejl i andres filer hvilket er et
>> vedligeholdelsesmareridt eller måske slet ikke muligt.
>
> Jeg tror egentlig ikke at vi kommer ret meget videre.
>
> Selv jeg har for længst vænnet mig til at skive std:: hver gang
> (se blot koden på min hjemmmeside).
>
> Det der triggede mig var den sædvanglige "politiske korrekte" reaktion:
> "Skriv _aldrig_ using namespace std; i en header-fil."
> Verden er ikke så enkel, og det er ikke verdens største problem.

Jeg tror ikke folk ville have så stort et problem med using namespace
std; i en headerfil hvis det var en blok-ting i stedet for:

using namespace std {
cout << "noget" << endl;
}

std::cout << "mere" << endl;

Men sådan er verden ikke skruet sammen (måske muligheden burde
være der), i stedet gælder using for al efterfølgende kode, uanset
hvilken fil koden kommer fra.

Det er ligesom at skrive
#define if while
i en header-fil... Det gør man bare ikke. I kode-filen kan man gøre
som man har lyst til, men ikke i en header.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Ivan Johansen (16-02-2006)
Kommentar
Fra : Ivan Johansen


Dato : 16-02-06 22:17

Kent Friis wrote:
> Jeg tror ikke folk ville have så stort et problem med using namespace
> std; i en headerfil hvis det var en blok-ting i stedet for:
>
> using namespace std { cout << "noget" << endl; }

Jeg ved ikke om det ville være en fordel. Men det er i hvert fald ikke
tilladt.

Det er egentlig mærkeligt at man ikke kan bruge et unavngivet namespace:

namespace
{
using namespace std;
void foo()
{
cout << "Hello" << endl;
}
}

Men det hiver også std ud i global namespace.

> Men sådan er verden ikke skruet sammen (måske muligheden burde være
> der), i stedet gælder using for al efterfølgende kode, uanset hvilken
> fil koden kommer fra.

Ja, det er jo det som er det store problem. Havde der bare været et
unusing namespace direktiv.

> Det er ligesom at skrive #define if while i en header-fil... Det gør
> man bare ikke. I kode-filen kan man gøre som man har lyst til, men
> ikke i en header.

Ja, det er også min holdning. Bertel kalder det "politiske korrekte" men
jeg mener det høre til den slags kode som bare tigger om problemer.

Ivan Johansen

Kent Friis (16-02-2006)
Kommentar
Fra : Kent Friis


Dato : 16-02-06 22:39

Den Thu, 16 Feb 2006 22:17:06 +0100 skrev Ivan Johansen:
> Kent Friis wrote:
>> Jeg tror ikke folk ville have så stort et problem med using namespace
>> std; i en headerfil hvis det var en blok-ting i stedet for:
>>
>> using namespace std { cout << "noget" << endl; }
>
> Jeg ved ikke om det ville være en fordel.

Ok, lad os vende det sådan her:

Der sidder nogen der absolut VIL bruge using namespace std i header-
filer, og uanset hvad du gør, får du dem ikke til at lade være. Kan
du så se fordelen i at kunne begrænse det til header-filen, så det
ikke går ud over resten af koden i et program der inkluderer headeren?

> Ja, det er jo det som er det store problem. Havde der bare været et
> unusing namespace direktiv.

Det var det første jeg tænkte på, men jeg syntes det mindede lidt
for meget om Visual Basic "End If". C++-måden at afgrænse noget
på er { }.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Ivan Johansen (17-02-2006)
Kommentar
Fra : Ivan Johansen


Dato : 17-02-06 00:21

Kent Friis wrote:
> Ok, lad os vende det sådan her:
>
> Der sidder nogen der absolut VIL bruge using namespace std i header-
> filer, og uanset hvad du gør, får du dem ikke til at lade være. Kan
> du så se fordelen i at kunne begrænse det til header-filen, så det
> ikke går ud over resten af koden i et program der inkluderer headeren?

Okay, hvis du siger det på den måde, så kan jeg godt se fordelen ved dit
forslag.

Ivan Johansen

Per Abrahamsen (14-02-2006)
Kommentar
Fra : Per Abrahamsen


Dato : 14-02-06 16:28

Bertel Brander <bertel@post4.tele.dk> writes:

> Jeg har altid ment at hele brug af namespace eller ikke er et
> spørgsmål om smag og behag.

Det er nødvendigt i større projekter.

[ Namespace håndtering generelt, ikke nødvendigvis sprogfasciliteten,
man kan emulere den med en konsistent navngivning. ]

> Hvis man ved hvad man gør ser jeg
> ingen problem i at sætte det ud af kraft én gang for alle.

I implementationsfilerne kan man gøre som man vil, men det er høfligst
at undgå import i headerfilerne, for det tilfælde at andre engang skal
genbruge koden.

Per Abrahamsen (15-02-2006)
Kommentar
Fra : Per Abrahamsen


Dato : 15-02-06 16:10

Thorsten Ottosen <thorsten.ottosen@dezide.com> writes:

> Problemet kan også være meget værre end man umiddelbart tror når ADL
> blandes ind i sagen.

ADL?

Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407944
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste