Bonjour,
Apres le C, je me remet tout doucement au C++.
Mais il y a une notion que j'ai du mal à aborder. C'est l'utilisation du mot const.
Par exemple, ici :
[cpp]main.cpp
int main(void)
{
String s1("azerty"), s2('q');
String s3=s1+s2;
}[/cpp]
[cpp]
cstring.h
class String
{
char * chaine;
int longueur;
public :
String(char *);
String(char );
String(const String & ); // contructeur par recopie
~String();
char * getString();
String operator+(String );
String operator+(char );
String & operator=(String );
};[/cpp]
[cpp]cstring.cpp
String::String(const String & copieChaine)
{
longueur = copieChaine.longueur;
chaine = new char[longueur];
int i;
for(i=0;i<=longueur;i++)
{
chaine = copieChaine.chaine;
}
}[/cpp]
Si,je ne met pas le mot const pour le constructeur par recopie : cela ne marche pas
[cpp]main.cpp:16: error: no matching function for call to `String::String(String)'
Cstring.h:10: error: candidates are: String::String(String&)
Cstring.h:9: error: String::String(char)
Cstring.h:8: error: String::String(char*)[/cpp]
J'ai un peu de mal à comprendre l'erreur.
Merci pour votre aide
Apres le C, je me remet tout doucement au C++.
Mais il y a une notion que j'ai du mal à aborder. C'est l'utilisation du mot const.
Par exemple, ici :
[cpp]main.cpp
int main(void)
{
String s1("azerty"), s2('q');
String s3=s1+s2;
}[/cpp]
[cpp]
cstring.h
class String
{
char * chaine;
int longueur;
public :
String(char *);
String(char );
String(const String & ); // contructeur par recopie
~String();
char * getString();
String operator+(String );
String operator+(char );
String & operator=(String );
};[/cpp]
[cpp]cstring.cpp
String::String(const String & copieChaine)
{
longueur = copieChaine.longueur;
chaine = new char[longueur];
int i;
for(i=0;i<=longueur;i++)
{
chaine = copieChaine.chaine;
}
}[/cpp]
Si,je ne met pas le mot const pour le constructeur par recopie : cela ne marche pas
[cpp]main.cpp:16: error: no matching function for call to `String::String(String)'
Cstring.h:10: error: candidates are: String::String(String&)
Cstring.h:9: error: String::String(char)
Cstring.h:8: error: String::String(char*)[/cpp]
J'ai un peu de mal à comprendre l'erreur.
Merci pour votre aide