/ 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
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Default værdier
Fra : Socketd


Dato : 17-08-03 00:39

Hey

Vil bare lige spørge hvad der er mest normalt at gøre og hvad C++
standarden siger om dette:

class Test {
   public:
   void hej(const string& tja = "Hejsa");
};

void Test::hej(const string& tja = "Hejsa") {
   cout<<tja<<endl;
}

g++ (gcc) vil fint kunne kompile dette, men MinGW (og vist også Visual
studio) brokker sig over at jeg i Test, giver tja en default værdi!?!?

mvh
socketd

 
 
Robert Larsen (17-08-2003)
Kommentar
Fra : Robert Larsen


Dato : 17-08-03 00:54

Socketd wrote:
> Hey
>
> Vil bare lige spørge hvad der er mest normalt at gøre og hvad C++
> standarden siger om dette:
>
> class Test {
>    public:
>    void hej(const string& tja = "Hejsa");
> };
>
> void Test::hej(const string& tja = "Hejsa") {
>    cout<<tja<<endl;
> }
>
> g++ (gcc) vil fint kunne kompile dette, men MinGW (og vist også Visual
> studio) brokker sig over at jeg i Test, giver tja en default værdi!?!?
>
> mvh
> socketd

Du skal kun skriv default værdien i definitionen:

class Test {
   public:
   void hej(const string& tja = "Hejsa");
};

void Test::hej(const string& tja) {
   cout<<tja<<endl;
}

Robert


Igor V. Rafienko (17-08-2003)
Kommentar
Fra : Igor V. Rafienko


Dato : 17-08-03 14:34

[ Robert Larsen ]

[ ... ]

> Du skal kun skriv default værdien i definitionen:


Nei:

[ 8.3.6, p 3 ]

A default argument expression shall be specified only in the
parameter-declaration-clause of a function declaration or in a
template-parameter (14.1). If it is specified in a
parameter-declaration-clause, it shall not occur within a declarator
or abstract-declarator of a parameter-declaration.88)

[ /sitat slutt ]

Ordet du leter etter (og begrepet eksempelet ditt illustrerer) er
"deklarasjonen".





ivr
--
<html><form><input type crash></form></html>

Robert Larsen (17-08-2003)
Kommentar
Fra : Robert Larsen


Dato : 17-08-03 20:41

Igor V. Rafienko wrote:
> [ Robert Larsen ]
>
> [ ... ]
>
>
>>Du skal kun skriv default værdien i definitionen:
>
>
>
> Nei:
>
> [ 8.3.6, p 3 ]
>
> A default argument expression shall be specified only in the
> parameter-declaration-clause of a function declaration or in a
> template-parameter (14.1). If it is specified in a
> parameter-declaration-clause, it shall not occur within a declarator
> or abstract-declarator of a parameter-declaration.88)
>
> [ /sitat slutt ]
>
> Ordet du leter etter (og begrepet eksempelet ditt illustrerer) er
> "deklarasjonen".
>
>
>
>
>
> ivr

hehe....fair nok


Bertel Brander (17-08-2003)
Kommentar
Fra : Bertel Brander


Dato : 17-08-03 01:05

Socketd wrote:
> Hey
>
> Vil bare lige spørge hvad der er mest normalt at gøre og hvad C++
> standarden siger om dette:
>
> class Test {
>    public:
>    void hej(const string& tja = "Hejsa");
> };
>
> void Test::hej(const string& tja = "Hejsa") {
>    cout<<tja<<endl;
> }
>
> g++ (gcc) vil fint kunne kompile dette, men MinGW

MinGW er også gcc/g++

(og vist også Visual
> studio) brokker sig over at jeg i Test, giver tja en default værdi!?!

Både Visual C++ og BorlandC brokker sig.

Jeg er ret sikker på at man ikke kan give en parameter en default
værdi i funktions definitionen.

Prøv at overveje hvad der ville ske hvis default værdierne i class
definitionen var anderledes en dem i funktions definitionen.

/b


Socketd (17-08-2003)
Kommentar
Fra : Socketd


Dato : 17-08-03 11:26

On Sun, 17 Aug 2003 02:04:43 +0200
Bertel Brander <bertel@post4.tele.dk> wrote:

> > g++ (gcc) vil fint kunne kompile dette, men MinGW
>
> MinGW er også gcc/g++

Ja, men g++ siger ikke noget til det......

> Jeg er ret sikker på at man ikke kan give en parameter en default
> værdi i funktions definitionen.

Ok, en tak til dig og Robert!

> Prøv at overveje hvad der ville ske hvis default værdierne i class
> definitionen var anderledes en dem i funktions definitionen.

Tja, det kan compileren vel fange?

mvh
socketd

Martin Moller Peders~ (18-08-2003)
Kommentar
Fra : Martin Moller Peders~


Dato : 18-08-03 05:28

In <20030817122537.290277f3.db@NO_SPAM_traceroute.dk> Socketd <db@NO_SPAM_traceroute.dk> writes:

>On Sun, 17 Aug 2003 02:04:43 +0200
>Bertel Brander <bertel@post4.tele.dk> wrote:

>> > g++ (gcc) vil fint kunne kompile dette, men MinGW=20
>>=20
>> MinGW er ogs=E5 gcc/g++

>Ja, men g++ siger ikke noget til det......

Faa en nyere version.

/Martin

N/A (18-08-2003)
Kommentar
Fra : N/A


Dato : 18-08-03 05:28



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste