000
01.03.2006, 20:57 Uhr
~RedStar
Gast
|
...obwohl die Reference meiner Ansicht nach defined ist . Egal, ich erklär das besser ausführlich:
Auszug aus dem Programm-Code:
table.h file:
C++: |
typedef unsigned int uint; typedef int nint;
using namespace std;
class table { public: static const char LINEON = 0x1; static const char DOUBLELINE = 0x10; static const char DASHEDLINE = 0x100; static const char DOTTEDLINE = 0x1000; static const char STANDARDLINE = LINEON; static const float STANDARDWIDTH = 1.0;
... void changeRowCount(nint relative);
|
table.cpp file:
C++: |
... void table::changeRowCount(nint relative) { if ((nint)(rowcount) + relative < 1 ) rowcount = 1; else rowcount = rowcount + relative;
for (uint i = 0; i < columncount; i++) { cellcontent[i].resize(rowcount, "");} bottomlayout[i].resize(rowcount, STANDARDLINE); rightlayout[i].resize(rowcount, STANDARDLINE); bottomlinewidth[i].resize(rowcount, STANDARDWIDTH); rightlinewidth[i].resize(rowcount, STANDARDWIDTH); } return; }
|
Wenn ich die obigen 4 Zeilen (die mit den großgeschriebenen Konstanten) rausnehme, compiliert er ohne Probleme, wenn ich sie drin lasse, bekomme ich den Error:
[Linker error] undefined reference to `table::STANDARDWIDTH'
Ich kann mich aber sonst in der Klasse so oft auf STANDARDWIDTH beziehen wie ich will - klar, weil ich die Konstanten in der Klasse definiert habe. Gerade deshalb erscheint mir dieser Fehler ja auch so rätselhaft.
Würd mich freuen, wenn jemand weiß, woran es liegen könnte...
MfG Red*Star
PS: Ich arbeite mit wx-DevCpp. |