Rein virtueller Methode mit QTimer*

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
stardust5383
Beiträge: 28
Registriert: 31. Oktober 2009 10:36

Rein virtueller Methode mit QTimer*

Beitrag von stardust5383 »

Hallo zusammen,

habe folgendes Problem bei einem Interface:

Code: Alles auswählen

class IAlarm
{
public:
	virtual void setGreen( bool on ) = 0;

	virtual void setYellow( bool on ) = 0;

	virtual void setRed( bool on ) = 0;

	virtual QTimer* getTimer( void ) = 0;
};
Das ist mein Interface.

Code: Alles auswählen

class Alarm: public QObject, public IAlarm
{
	Q_OBJECT
public:
	Alarm(short nGreen, 
		short nYellow, 
		short nRed,
		short duration);

	~Alarm(void);

	bool isOn( void ) const;

	void setOn( bool on );

	QTimer* getTimer( void );

	void setGreen( bool on );

	void setYellow( bool on );

	void setRed( bool on );
}
Wieso erhalte ich beim kompilieren folgende Fehlermeldung, obwohl die rein virtuelle Methode virtual QTimer* getTimer( void ) implementiert ist in Alarm?
>Alarm.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual class QTimer * __thiscall Alarm::getTimer(void)" (?getTimer@AlarmManager@@UAEPAVQTimer@@XZ)".
1>C:\Alarm.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: Rein virtueller Methode mit QTimer*

Beitrag von solarix »

stardust5383 hat geschrieben: Wieso erhalte ich beim kompilieren folgende Fehlermeldung, obwohl die rein virtuelle Methode virtual QTimer* getTimer( void ) implementiert ist in Alarm?
Das ist keine Compilermeldung sondern ein Linkerfehler. Aber zur "implementierten Methode": ist sie das? Ich meine, wir sehen hier im Code-Auszug ja nur die Deklaration... hast du sie denn auch implementiert?
stardust5383
Beiträge: 28
Registriert: 31. Oktober 2009 10:36

Beitrag von stardust5383 »

jaja...

manchmal sieht man den Wald vor lauter Bäumen nicht :)

Hatte die Methode in der .cpp auskommentiert...

Danke für den Hinweis auf meine eigene Blindheit :)
Antworten