Bonjour,

J'ai été formé en java et je débuter en c++ avec le support du livre que j'ai vu sur ce site "QT et c++". Personnellement quand je lis du code c++ j'arrive à le comprendre après avoir lu quelque tutoriaux. Je développe un programme en QT et kdepim mais les api utilisée n'ont pas vraiment d'importance ici car il semble que ce soit plutôt un problème de syntaxe.

Voila mon problème.

J'ai fais une classe dérivée de KABC::Adresses (classe qui perment de stocker des Adresse dans le carnet d'adresse de kde pim)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
class TypeAdresses : public KABC::Address
et j'y ai mis deux constructeurs.

L'un par défaut avec le paramètre un pointeur vers la super clasase.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
public:
explicit TypeAdresses(KABC::Address *parent  = 0);
et l'autre ou je voudrais que le paramètre de type QString passé par référence soit obligatoire.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
TypeAdresses (KABC::Address *parent = 0, QString &typeAdresse );
Malheureusement, cela semble ne pas fonctionner comme je l'attendais. le compilateur c++ me fait comprendre que cette référence doit être initialisée elle aussi.

je mets alors :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
TypeAdresses (KABC::Address *parent = 0, QString &typeAdresse = 0 );
Du coup, quand je met cette ligne à un endroit.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
    TypeAdresses adresse;;
Le compilateur confond les deux constructeur ce qui est normal puisque tous les paramètre ont des valeur par défaut Je n'arrive cependant pas a rendre obligatoire le paramètre QString passé par référence.

Comment faire pour résoudre mon problème ?

J'ai cherché une solution sur google et dans mon livre mais je n'ai rien trouvé mis à part qu'il sembleras que toute référence doit être initialisée en c++

Confirmez-vous cela ?

Ma classe à la propriété suivante.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
private:
  QString typeAdresse;
Je vous remercie d'avance pour votre aide. Si vous pouviez me répondre assez rapidement ça serait sympa.

Salutations