/ 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
Hvad er forkert i dette kode (Arv)
Fra : Niels


Dato : 14-09-03 11:02

Hej NG

Jeg får følgende fejl ved compiling af nedenstående kode:

Figur.cpp
error C2146: syntax error : missing ';' before identifier 'udskrivfigur'
error C2065: 'udskrivfigur' : undeclared identifier
Error executing cl.exe.

----------------------------------------------
Figur.cpp
----------------------------------------------
#include <iostream>
using namespace std;

#include "figur.h"

void main()
{
punkt nytpunkt(1, 2);

nytpunkt udskrivpunkt();
}

----------------------------------------------
Figur.h
----------------------------------------------
#ifndef Figur
#define Figur

class figur
{
private:
int punktx;
int punkty;
public:
figur(int x, int y):punktx(x), punkty(y){}
void udskrivfigur(void);
};

class punkt : public figur
{
private:
public:
punkt(int x, int y):figur(x, y){}
};

class trekant : public figur
{
private:
int punktz;
public:
trekant(int x, int y, int z):figur(x,y), punktz(z){}
};

void figur::udskrivfigur(void)
{
cout <<"Udskrivning figur"<< endl;
cout <<punktx;
cout <<punkty;
}

#endif;

-----------------------------------

Kan nogen hjælpe og komme med en løsning

Mange tak



 
 
Ivan Johansen (14-09-2003)
Kommentar
Fra : Ivan Johansen


Dato : 14-09-03 11:29

Niels wrote:
> Jeg får følgende fejl ved compiling af nedenstående kode:
I hvilken linie?

> #include <iostream>
> using namespace std;
>
> #include "figur.h"

"using namespace" bør altid placeres efter alle includes.

> nytpunkt udskrivpunkt();

Jeg kan ikke regne ud hvad denne linie skal gøre. Det ligner en
funktionserklæring, men du har ikke nogen type der hedder nytpunkt.

Ivan Johansen


Niels (14-09-2003)
Kommentar
Fra : Niels


Dato : 14-09-03 11:50

> > Jeg får følgende fejl ved compiling af nedenstående kode:
> I hvilken linie?
>
> > #include <iostream>
> > using namespace std;
> >
> > #include "figur.h"
>
> "using namespace" bør altid placeres efter alle includes.

Ok, tak

> > nytpunkt udskrivpunkt();

Ups. Det var også en fejl.

> Jeg kan ikke regne ud hvad denne linie skal gøre. Det ligner en
> funktionserklæring, men du har ikke nogen type der hedder nytpunkt.
>
> Ivan Johansen

De nye filer ser sådanne ud:

Fejlen kommer i nyfigur udskrivfigur();

-----------------------------------------------------
Figur.cpp
-----------------------------------------------------

#include <iostream>
#include "figur.h"
using namespace std;

void main()
{
figur nyfigur(2,1);

nyfigur udskrivfigur();
}

-----------------------------------------------------
Figur.h
-----------------------------------------------------

#ifndef Figur
#define Figur

#include <iostream>
using namespace std;

class figur
{
private:
int punktx;
int punkty;
public:
figur(int x, int y):punktx(x), punkty(y){}
void udskrivfigur(void);
};

class punkt : public figur
{
private:
public:
punkt(int x, int y):figur(x, y){}
void udskrivpunkt(void);
};

class trekant : public figur
{
private:
int punktz;
public:
trekant(int x, int y, int z):figur(x,y), punktz(z){}
void udskrivtrekant(void);
};

void figur::udskrivfigur(void)
{
cout <<"Udskrivning figur"<< endl;
cout <<punktx;
cout <<punkty;
}

#endif;



Ivan Johansen (14-09-2003)
Kommentar
Fra : Ivan Johansen


Dato : 14-09-03 12:07

Niels wrote:
> nyfigur udskrivfigur();

Du mener sandsynligvis:
nyfigur.udskrivfigur();

Ivan Johansen


Per Abrahamsen (15-09-2003)
Kommentar
Fra : Per Abrahamsen


Dato : 15-09-03 16:17

"Niels" <niels.h@spoerg.dk> writes:

> void main()

int main () // Hvorfor ikke skrive i C++?

Du kan så evt. tilføje en "return 0" i slutningen af main hvis din
compiler brokker sig.

> nyfigur udskrivfigur();

nyfigur.udskrivfigur();

> #define Figur

Det kan let giver problemer da "Figur" let kan forekomme som
almindelig identifier. Jeg vil foreslå

#define FIGUR_H

i stedet, eller en anden konvention der giver identifiers det er
usandsynligt forekommer i almindelig kode.

> void figur::udskrivfigur(void)
> {
> cout <<"Udskrivning figur"<< endl;
> cout <<punktx;
> cout <<punkty;
> }

Flyt den til .cpp filen, så slipper du også for at inkludere
<iostream> (og namespace std) i headerfilen.

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