Avatar billede komp Nybegynder
03. december 2001 - 17:03 Der er 22 kommentarer og
1 løsning

Member Identifier expected”.

Hej

Jeg har lavet en klasse, som vi kan kalde A, samt en anden klasse der hedder B. A kalder en funktion over i B, med en vector af strenge som argument.
Funktionen er lavet, men alligevel får jeg en fejl der siger ”Member Identifier expected”.

Jeg er fuldstændig på bar bund! Hvad kan der være galt?
Avatar billede jpk Nybegynder
03. december 2001 - 17:18 #1
Må vi se noget kode...?
Avatar billede komp Nybegynder
03. december 2001 - 17:19 #2
hvad vil du se?
Avatar billede jpk Nybegynder
03. december 2001 - 17:21 #3
Jeg går ud fra du får et linienummer til fejlen?

Så noget kode omkring der selvfølgelig...

Avatar billede komp Nybegynder
03. december 2001 - 17:21 #4
A\'s kald:

minparser.start(xsymboltabel);

B\'s funktion:
void parser::start(vector<string> &symboltabel)
{      if(htmldokument(symboltabel))
        {      cout <<\"dokument parset\"<< endl;
                for (unsigned int i=0;i<linktabel.size();i++)
                {      cout<< \"Link: \"<< linktabel[i]<< endl;
                }
                for (unsigned int i=0;i<sogetabel.size();i++)
                {      cout<< \"Søgeord: \"<< sogetabel[i]<< endl;
                }
        }
}
Avatar billede komp Nybegynder
03. december 2001 - 17:22 #5
fejlen kommer ved kaldet!
Avatar billede jpk Nybegynder
03. december 2001 - 17:28 #6
Altså i A har du et objekt af class parser, som du så kalder start på?

Avatar billede komp Nybegynder
03. december 2001 - 17:31 #7
jep!
Avatar billede komp Nybegynder
03. december 2001 - 17:33 #8
tror du det kan være et problem at det er en vector der overføres?
Avatar billede jpk Nybegynder
03. december 2001 - 17:36 #9
Der er ikke noget problem i at overføre en vector...
Avatar billede jpk Nybegynder
03. december 2001 - 17:40 #10
Ikke at det løser dit problem, men lige et lille fif:
Hvis du laver følgende typedef, kan du bruge typen \"Symboltabel\" i stedet for \"vector<string>\", det gør koden lidt pænere og mindsker arbejdet hvis du senere vælger at skifte type!

typedef vector<string> Symboltabel;

void parser::start(Symboltabel& symboltabel)
{
...
}
Avatar billede komp Nybegynder
03. december 2001 - 17:49 #11
Tak skal du have.
Avatar billede jpk Nybegynder
03. december 2001 - 17:56 #12
Kan du kalde andre metoder på \"minparser\" uden fejl?

Avatar billede komp Nybegynder
03. december 2001 - 17:58 #13
nej, men der er også private!

Jeg får også en warning der hedder: Cannot create precompiled heder: code in header.

ved du hvad den betyder?
Avatar billede jpk Nybegynder
03. december 2001 - 18:00 #14
Tja, det lyder til at du kører med precompiled headers, i VC++ skal man include en bestemt fil (stdafx.h) for at undgå en lignende fejl.
Man kan også slå precompiled headers fra...

Hvilken kompiler bruger du?

Avatar billede komp Nybegynder
03. december 2001 - 18:02 #15
Jeg bruger Borland 5.0.

Hvad er precompiled headers?
Avatar billede jpk Nybegynder
03. december 2001 - 18:04 #16
Det betyder \"forkompilerede\" headers og gør at kompileren slipper for at kompilere disse. Det giver naturligvis en hastighedsfordel!

Avatar billede jpk Nybegynder
03. december 2001 - 18:05 #17
Du kan jo prøve at lave en \"tom\" funktion og se om du kan kalde den...

Du kan også poste et større omfang af koden, så jeg har større mulighed for at hjælpe!

Avatar billede komp Nybegynder
03. december 2001 - 18:06 #18
Når man trykker på denne warning, så ryger man lige ind i startfunktionen. Kan det være noget om det?
Avatar billede jpk Nybegynder
03. december 2001 - 18:09 #19
Hmm, prøv at vise noget mere kode...

Avatar billede komp Nybegynder
03. december 2001 - 18:12 #20
kan jeg ikke sende det til dig på en mail?
Avatar billede jpk Nybegynder
03. december 2001 - 18:17 #21
Okay, jacpost@post6.tele.dk
Avatar billede jpk Nybegynder
04. december 2001 - 09:10 #22
Jeg tænkte nog det var noget lign, derfor var det første jeg prøvede også at erstatte dine linier med

using namespace std;

til

using std::vector;
using std::string;

(Eftersom du kun anvender vector & string fra std)
Derved kan du ofte undgå fejl som den du havde her, da der fx let kan være et namespace under std, der intefererer med et andet namespace du selv har oprettet eller fra nogle libs du anvender.
Avatar billede komp Nybegynder
04. december 2001 - 09:44 #23
Tak for det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester