problem z QObject(bib. Qt)

0

Witam
Pisze program z wykorzystanie biblioteki Qt.
mam sobie klase:

class User : public QObject
{
public:
    User();

private:
    QString name;
};
}

oraz funkcje:

void funk(QObject &ob){

    if(ob.inherits("User"))cout<<"tak";
}

teraz w maine używam:

main(){
User *user=new User();
funk(*user);
}

i teraz dlaczego funkcja ob.inherits nie chce mi rozpoznać klasy ?
Czytałem dokumentaje ale nie potrafie do tego dojść.
Ogólnie chce zrobić tak, że mam sobie kilka klas (np. User, zwierze , roslina) i po wrzuceniu to tej funkcji ktoregoś z objektow, funkcja ma rozpoznawać klase.
Proszę o pomoc :)

0

może coś takiego :d pisze z głowy wiec mogą być błędy :d

void funk(QObject *ob)
{
	QObject *obiekt;
	obiekt = qobject_cast<User*>(ob);
	if(obiekt == NULL)
	{
		obiekt = qobject_cast<Zwierze*>(ob);
		if(obiekt == NULL)
		{
			obiekt = qobject_cast<Roslina*>(ob);
			if(obiekt == NULL)
			{
				qDebug()<<"jest niezidentyfikowany obiekt";
			}
			else
				qDebug()<<"jest Roslina";
		}
		else
			qDebug()<<"jest Zwierze";
	}
	else
		qDebug()<<"jest User";
}
0

Czy nie brakuje tam makra Q_OBJECT ?

0

dokładnie, bez tego makra nie ma "meta data" dla tej klasy, więc po prostu nie da się zastosować rozpoznawania po nazwie klasy, qobject_cast też nie zadziała w tym przypadku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1