Constructeurs et les paramètres passés par référence obligatoires.
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:
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:
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:
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:
1 2
|
TypeAdresses (KABC::Address *parent = 0, QString &typeAdresse = 0 ); |
Du coup, quand je met cette ligne à un endroit.
Code:
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:
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