2011-08-13 4 views
-1

J'ai déclaré QObject macro, mais encore son appel de la fonction sans passer l'objet QObjectQObject macro a déclaré

Voici mon code keyusermanagertest.cpp

#define private public 
#define protected public 
#include "keyusermanagertest.h" 
#include "storageusermanager.h" 
#include "keyusermanager.h" 
#include "alkuser.h" 
#undef protected 
#undef private 

#include <QDebug> 
#include <QtTest/QtTest> 

QTEST_MAIN(KeyUserManagerTest) 

void KeyUserManagerTest::init() 
{ 

} 

void KeyUserManagerTest::cleanup() 
{ 
} 

void KeyUserManagerTest::test_initialization() 
{ 
// Already tested under BackendTest::test_initialization() 

} 

void KeyUserManagerTest::settersAndGetters() 
{ 
    AlkUser userInfo; 
    QString user="Puneet Goyal"; 
    StorageUserManager* storageuser=new StorageUserManager(); 
    KeyUserManager* keyuser=new KeyUserManager(storageuser); 
    keyuser->updateUserData(user,userInfo); 
    qDebug()<<"UPDATION DONE!!!!"; 
// Now setting the rest of the details for user Puneet Goyal using AlkUser Object 

    userInfo.setName("Puneet"); 
    userInfo.setContact("21897121"); 
    userInfo.setType("savings"); 
    userInfo.setAccount("123456789"); 
    userInfo.setAmount("100000"); 

// Now retrieving all the user details using KeyUserManager Object 
    QVariant vari=keyuser->getUserInfo("Puneet Goyal"); 

} 

keyusermanagertest.h

#ifndef KEYUSERMANAGERTEST_H 
#define KEYUSERMANAGERTEST_H 

#include <QtCore/QObject> 

class KeyUserManager; 

class KeyUserManagerTest : public QObject 
{ 
    Q_OBJECT 

private slots: 

    void init(); 
    void cleanup(); 
    void test_initialization(); 
    void settersAndGetters(); 
}; 

#endif 

Sa sortie de compilation est la suivante " /home/puneet/puneet/office/alkimia/payment/backend/keyusermanagertest.cpp: Dans la fonct ion 'void KeyUserManagerTest :: settersAndGetters()': /home/puneet/puneet/office/alkimia/payment/backend/keyusermanagertest.cpp:52: erreur: aucune fonction correspondante pour l'appel à 'StorageUserManager :: StorageUserManager()' /home/puneet/puneet/office/alkimia/payment/backend/storageusermanager.h:41: remarque: les candidats sont: StorageUserManager :: StorageUserManager (QObject *) /home/puneet/puneet/office/alkimia/payment/backend/storageusermanager.h: 37: note: StorageUserManager :: StorageUserManager (const StorageUserManager &) /home/puneet/puneet/office/alkimia/payment/backend/keyusermanagertest.cpp:53: erreur: aucune fonction correspondante pour l'appel à 'KeyUserManager: : KeyUserManager (StorageUserManager * &) ' /home/puneet/puneet/office/alkimia/payment/backend/keyusermanager.h:44: remarque: les candidats sont les suivants: KeyUserManager :: KeyUserManager (StorageUserManager *, QObject *) /home/puneet/puneet/office/alkimia/payment/backend/keyusermanager.h:41: Note: KeyUserManager :: KeyUserManager (const KeyUserManager &)

Merci

Répondre

1

ajouter à votre constructeur KeyUserManagerTest - en-tête ajouter

KeyUserManagerTest (QObject* parent=0); 

et cpp

KeyUserManagerTest::KeyUserManagerTest(QObject* parent):QObject(parent){}; 

La macro QOBJECT ne crée pas de constructeur pour vous!

+0

merci, mais maintenant il me donne une erreur que erreur: spécification de type de retour pour le constructeur invalide – Puneet

+0

hmmm ... puis quelque chose ne va pas avec votre constructeur. Est-il déclaré public? – Raiv

+0

oui son public public: void KeyUserManagerTest (QObject * parent = 0); – Puneet

Questions connexes