webForumDet fria alternativet

Hur ska jag göra?

C/C++

6 svar · 607 visningar · startad av axel_k1990

Medlem sedan apr. 20056 inlägg
Frågan#1

Hej!
Jag har skapat en klass och försökt göra ett testprogram till denna men jag vet inte om jag gjort rätt. Jag undrar om någon kan hjälpa mig att få ihop ett testprogram till detta. Koden jag har ser ut så här.

class Person {
private:
char* namn;
int telenummer;
public:
Person(const char* Namn, int Tele);
Person();
~Person();
void Visa();
void setTele(int tnr);
void getTele()
}

Person::Person(const char* namn, int Tele) {
telenummer=Tele;
namn=new char[strlen(Namn)];
strcpy(namn,Namn);
}
Person::Person() {
telenummer=0;
namn=new[1];
namn[0]='\0';
}
Person::~Person() {
delete [] namn;
}
Person::Visa() {
cout << "Namn: " << namn 
<< "\nTelefon: " << telenummer;
}

Person::setTele(int tnr)
{
	telenummer=tnr;
}

Person::getTele()
{
	cout <<"Telefon: " << telenummer;
}

Person::setName(const char* Namn)
{
	namn=new char[strlen(Namn)];
	strcpy(namn, Namn)
}
Medlem sedan maj 20033 218 inlägg
#2

Får du något felmeddelande?

Medlem sedan apr. 20056 inlägg
#3

Vid kompilering får jag:

'Person::Person' : constructors not allowed a return type
'strlen' : undeclared identifier
'Namn' : undeclared identifier
'strcpy' : undeclared identifier

Samt en del missing ';' before '}'

Jag har säket gjort en hel del fel, men jag är inte så kunnig.

Medlem sedan juli 2002581 inlägg
#4

C++ skiljer på stora och små bokstäver -- så 'Namn' är ej samma som 'namn'. Du har två variabler som heter exakt likadant, en i klassen och en som argument till konstruktorn -- fixa det.

Klassdeklarationer skall avslutas med semikolon.

missing ';' before '}'

Detta betyder exakt det som där står. Det är bara att göra som kompilatorn säger.

Sedan finns det ytterligare ett antal slarvfel, men börja med att fixa ovanstående fel.

Medlem sedan maj 20002 993 inlägg
#5

Saknas även ett "void" framför samtliga funktions-definitioner.

Medlem sedan sep. 2002188 inlägg
#6

Jag förstår bara inte hur folk som pysslar med objektorientering i c++ har kunnat tappa allt som grunderna säger ang ";" och funktioner (not. void funktion).

Medlem sedan juli 2002581 inlägg
#7

Broms skrev:

Jag förstår bara inte hur folk som pysslar med objektorientering i c++ har kunnat tappa allt som grunderna säger ang ";" och funktioner (not. void funktion).

Vadå "tappa"?
Det är ju inte precis så att man lär sig jättebra C++ utan klasser och sen lägger på objektorienteringen sist. Klasser finns med i programmeringen ganska tidigt.

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)