Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

24.11.2004, 16:10

'int' und 'int (__thiscall CGDIBitmap::*)(void)'

Hallo,
ich bastel gerade an einer Bitmap Klasse und da gibt u.a. folgende Memblerfunktion:

Quellcode

1
inline  int GetX() {return m_SBitmap.iX;}

Wenn ich jetzt im Hauptprogramm GetX benutzen will,

Quellcode

1
2
int test;
test = Bild.GetX;

wird folgende Fehlermeldung ausgespuckt:

Zitat


error C2440: '=' : 'int (__thiscall CGDIBitmap::*)(void)' kann nicht in 'int' konvertiert werden
Diese Konvertierung ist eine gueltige Standardkonvertierung, die implizit oder mit dem static_cast-Operator oder mit einer Typumwandlung im C- oder Funktionsformat durchgefuehrt wird


Wieso meckert der Compiler wenn Variabe und Rückgabewert vom Typ 'int' sind??

PD

unregistriert

2

24.11.2004, 16:14

Du versuchst der Integer Variable test die Adresse deiner Methode GetX zu übergeben ;)

versuchs mit

C-/C++-Quelltext

1
2
int test;
test = Bild.GetX();

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

3

24.11.2004, 17:49

Der Compiler meckert eben, weil du versuchst, deinem int-Wert den Wert eines Funktionszeigers aufzudrängen. Denn wenn man in C++ den Namen einer Funktion schreibt ohne die Klammern zum Aufrufen, dann interpretiert der Compiler es als "Adresse der Funktion".
Kommst du von Pascal? Dort ist es doch so, dass Prozeduren und Funktionen ohne Argumente auch ohne Klammern aufgerufen werden können, oder? :)
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Anonymous

unregistriert

4

24.11.2004, 17:59

komme zum Glück nicht von Pascal, hätte aber absolut nicht mit dieser Antwort gerechnet.
Vielen Dank!

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

5

24.11.2004, 18:08

Zitat von »"lumpinus"«

komme zum Glück nicht von Pascal...


was soll denn das heißen... :-D (es lebe C++!!!!)
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

Werbeanzeige