Sziasztok!
Ezt a topic-ot azért nyitottam, mert egy kis segítségre lenne szükségem. Meg szerétnék kicsit barátkozni a C++ nyelvvel. Ennek érdekében vásároltam 2 könyvet, töltöttem le néhány jegyzetet, de az első lépést csak nem sikerült megtennem az objektumok használata felé.
Itt van rögtön a legelső péda. Ezt a könyvet a C++ 2.0-s UNIX-os változatához írták. Egy ingyens windows-os, a Borland által kiadott 5.5-ös, fapados fordítót sikerült szereznem hozzá, aminek ugyebár kompatibilisnek kellene lennie, de csak nem fordul le. Sajnos a könyv nem tartalmazza összefüggően a teljes forrást, ami tovább nehezíti a dolgot, további hibákra adva lehetőséget, de igyekeztem szépen egymás után írni a részeket és ez lett az eredménye:
IntArray.h fájl tartalma:
const int ArraySize = 24;
class IntArray {
public:
IntArray(int sz = ArraySize);
IntArray(const IntArray&);
~IntArray() { delete ia; }
IntArray& operator = (const IntArray&);
int& operator[] (int);
int getSize() { return size; }
protected:
int size;
int *ia;
};
IntArray.cpp fájl tartalma:
IntArray::IntArray(int sz) {
ia = new int[size];
for (int i = 0; i < sz; i++)
ia[i] = 0;
}
IntArray::IntArray (const IntArray &iA) {
size = iA.size;
ia = new int[size];
for (int i = 0; i< size; i++)
ia[i] = iA.ia[i];
}
IntArray& IntArray:
perator = (const IntArray &iA) {
delete ia;
size = iA.size;
ia = new int[size];
for (int i = 0; i < size; i++)
ia[i] = iA.ia[i];
return *this;
}
int& IntArray:
perator[] (int index) {
return ia[index];
}
proba.cpp fájl tartalma:
#include "IntArray.h"
#include "IntArray.cpp"
main () {
IntArray ia;
}
Egyébként állítólag lehet egy előzetes fordítást is végezni az include állományon, ami nem sikerült, így ezt a részt kihagytam. Na most próbáltam a következő paracsot:
bcc32.exe -If:\borland\bcc55\include\ -Lf:\borland\bcc55\lib\ proba.cpp
Erre a következő hibaüzenetet kaptam:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
proba.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'IntArray::IntArray(int)' referenced from F:\BORLAND\BCC55\BIN\PROBA.OBJ
Tudna valaki segíteni abban, hogy mit rontottam el? Elvileg csak másolásról van szó...
Közben már megkaptam a megoldást. Volt egy elírás (azt javítottam itt is) és az IntArray.cpp-t is includdal be kellett szurni, ez volt a hiba.
Letörölném az egész topicot, de nem tudom. Na sebaj, hátha érdekel valakit vagy kedvet kap hozzá...