2010-12-05 3 views
2

Je me suis question suivante: Ce travail est:QT - pointeur vers QColor fonctionne un accès direct ne pas

#include <QtCore/QCoreApplication> 
#include <QColor> 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    QColor *c = new QColor(); 
    c->setRgb(12,123,13); 
    return a.exec(); 
} 

mais cela ne le font pas:

#include <QtCore/QCoreApplication> 
#include <QColor> 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    QColor c(); 
    c.setRgb(123,213,2); 
    return a.exec(); 
} 

QtCreator me chercher:

demande de membre 'setRgb' dans 'c' qui est de type non-classe 'Qcolor()'

Que se passe-t-il?

EDIT OK solution était utiliser Qcolor c sans '()', mais que faire si c'est membre de la classe? Ensuite, un accès direct ne fonctionne toujours pas ... à savoir:

class X{ 

QColor c; 

    void func(){ 
    c.setRgb(1,2,3); 
    } 
} 
+1

double possible de [Pourquoi est-il une erreur d'utiliser un ensemble vide de crochets pour appeler un constructeur sans argument? ] (http://stackoverflow.com/questions/180172/why-is-it-an-error-to-use-an-empty-set-of-brackets-to-call-a-constructor-with-no) – ybungalobill

+0

Maintenant c'est légal C++. Vos outils peuvent être bugués. Quelle erreur obtenez-vous? – ybungalobill

+0

Mon application a planté ... (il doit être une raison parce que si je change sur c-> setRgb (1,2,3) et Qcolor * c; l'application fonctionne ... –

Répondre

3

Ce

QColor c(); 

est une déclaration de fonction. Changer à

QColor c; 

C'est un doublon possible de centaines de questions similaires ....

+0

pourriez-vous l'expliquer un peu plus? Même Qtcreator basculer '()' –

+0

@John: I Je n'ai aucune idée de ce qu'est Qtcreator, ni de Qt. Probablement parce que votre utilitaire d'achèvement de code s'attend à ce que vous tapiez quelque chose entre les parenthèses ou les supprimiez autrement.Voir la dupe que j'ai posté ci-dessus – ybungalobill

+0

Thx ... dernière question: qu'est ce qui se passe si Qcolor –

1

Déclarez comme

QColor c;

Questions connexes