bonjour a vous,
je suis encore avec ma class chaine
je ne comprends pas pourquoi quand je met dans l'operator+
const chaine &
j'ai une erreur de compilation sans le const tout fonctionne
1>chaine.cpp(30) : error C2662: 'chaine::getChaine' : cannot convert 'this' pointer from 'const chaine' to 'chaine &'
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
19
20
21
22
23
24
25
26
27
28 #ifndef _chaine_ #define _chaine_ #include <iostream> #include <cstring> using namespace std; class chaine { public: chaine(); chaine(char c); chaine (char * ); chaine& operator+(const chaine&); char * getChaine(){return machaine ;} int getSize(){return size;} private : char * machaine; int size; }; #endif
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include "chaine.h" chaine::chaine() { machaine = new char [1]; strcpy(machaine ,"\0"); size =0; } chaine::chaine(char * str) { if(str) { size= strlen(str); machaine = new char[size+1]; machaine = strcpy(machaine,str); } else chaine(); } chaine &chaine::operator +( const chaine & str)//const { if (machaine) { char * temp = new char[size+= str.size+1]; temp = strcpy(temp,machaine ); delete [] machaine; machaine = strcat(temp,str.getChaine()); return *this; } }
Partager