01. oktober 2002 - 22:45Der er
4 kommentarer og 1 løsning
Et begynder eksempel med klasser
Jeg har virkelig problemer med, mit C++ !! - jeg skal lave et program der indeholder klasser. Prog. skal lave noget udregning paa et laan med rente og afdrag osv. Og derfor skal alle disse i "klasser" !! Jeg er tvivl om "headerne" og hvilke void der skal bruges. Jeg læser "Compuer Science" i Reykjavík saa det kan være lidt svært at fölge lærenes eksempler !! Jeg haaber paa lidt hjælp fra alle jer bag skærmen.
int main(int argc, char **argv) { //objekt af MyClass oprettet som pointer til objekt MyClass *x = new MyClass(); x->setValue(12345); printf("Value af x er %i\n", x->getValue()); delete x;
//objekt af MyClass oprettet som objekt MyClass y; y.setValue(54321); printf("Value af y er %i\n", y.getValue());
når du opretter et objekt (MyClass minklasse) så kalde konstruktøren i MyClass - det giver mulighed for programmøren af klassen at udføre noget initialisering af forskellige ting (eks. datamembers, dynamisk oprettelse af objekter med "new" osv)
Når objektet nedlægges, enten via delete myclass eller ved at klassen gå ud af scope, så kaldes destruktøren - det giver mulighed for at deinitialisere det som nu er blevet initialiseret i konstruktøren, eks. delete af objekter oprettet med "new" osv)
Når du kommer videre i dit forløb vil du støde på copy constructor og assignment operator som er lidt i samme boldgade som konstruktører - spørg når du kommer så langt :-)
Hej Soreno, jeg har lige testet dit lille eksempel, helt uden modificationer...
Når jeg kompilere med BCC32, får jeg følgende:
C:\soreno>bcc32 main.cpp Borland C++ 5.6 for Win32 Copyright (c) 1993, 2002 Borland main.cpp: Warning W8057 main.cpp 18: Parameter 'argc' is never used in function main(int,char * *) Warning W8057 main.cpp 18: Parameter 'argv' is never used in function main(int,char * *) Turbo Incremental Link 5.60 Copyright (c) 1997-2002 Borland Error: Unresolved external 'MyClass::~MyClass()' referenced from C:\main.OBJ Error: Unresolved external 'MyClass::MyClass()' referenced from C:\main.OBJ Error: Unresolved external 'MyClass::setValue(int)' referenced from C:\main.OBJ Error: Unresolved external 'MyClass::getValue()' referenced from C:\main.OBJ
Hvorfor nu det?
Min kode er 100% rip-off fra Soreno lige oven over..
Synes godt om
Ny brugerNybegynder
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.