000
03.03.2005, 11:48 Uhr
ABC_Freak
|
Hi Leute,
um gleich zur sache zu kommen folgendes Problem:
Ich habe eine Klasse Converter2d mit einer Methode:
C++: |
Point Converter2d::calcRelative(const Point & pt){ double x = (pt.getX()-centerX)/centerY; // centerY is not only the y center position but the length of 1.0 double y = (pt.getY()-centerY)/centerY; return Point(x,y); }//*/
|
beim aufruf der Methode:
C++: |
Point pStart(1.0,1.0); // eigentlich natuerlich ein wenig komplexer... imgConverter.calcRelative(pStart);
|
kriege ich im Debuger folgende exception gleich bei der ersten zeile (nach pt.getX() da getX() auch const is also geht das zumindes in ordnung): Unhandled exception at 0x004358e4 in test4.exe: 0xC0000005: Access violation reading location 0x00000010
anscheinend tritt dieser fehler auf bei einem zugriff auf die Attribute... ich hab keinen peil warum. Das ganze projekt einfach neu bauen hilft auch nix.
was soll ich also machen wenn ein Object schon nich mehr auf seine eigenen privaten attribute zugreifen darf? (nebenbei: es sind alle attribute richtig belegt und der eingegebene Point ist auch komplett inizialisiert, es ist auch nix NULL) Liegts an mir (wahrscheinlich) oder am compiler?
der header dazu:
C++: |
class Converter2d { public: Converter2d(int imgWidth, int imgHeight); Converter2d(Image & img); virtual ~Converter2d(void); Point calcAbsolute(const Point & pt); Point calcRelative(const Point & pt); private: int width; // the absolute width of the image int height; // the absolute height of the image double centerX; // the absolute x position of the center double centerY; // the absolute y position of the center double fac; // the relation between width and height };
|
Danke im Vorraus... |