Bonjour a tous.

J'ai crée une classe CString qui a en attribut un string (std::string) me permettant d'appliquer multiples traitements sur ce string.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
class CString : public ClovisVariable {
 
	private:
 
		std::string value;	// Internal value
 
	public:
 
               CString(std::string name , std::string value);
		CString();
		CString(std::string value);
		CString(char * value);
                //.....
		void operator = (std::string value);
                void operator = (CString value);
		void operator = (char * value);
                //.....
Dans cette classe j'ai redéfini les opérateur (+ - et =) permettant des opération de base genre concatenation ...

Dans un paramètre d'une autre classe je souhaite faire ceci:

static void logOn(ERROR_TYPE error , core::CString message , core::CString fichier = "error.log" );

J'ai une erreur a la compilation :

erreur: default argument for parameter of type «clovis::core::CString» has type «const char [10]»|

Apparement je suppose ici que le problème vient du dernier paramètre ... mais je ne connais pas la solution quelqu'un a une idée?

Je compile sous linux (g++ v4.2.3)

D'avance merci