bonjour
je transpose des classes écrites en borland C++ (du C++ en gros mais à la borland)..
j'ai remarqué que le mot const ca posait des soucis; ai je raison ?
avant j'avais :
Apres
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
38
39
40
41
42
43
44
45
46
47 class CToto { public CToto(){} CToto(const CToto& original) { m_Mat = original.GetMat(); } private: AnsiString m_Mat; public: void SetMat(const AnsiString& Str) { m_Mat = Str; } const AnsiString& GetMat() const { return m_Mat; } operator const AnsiString& () const { return m_Mat; } CToto& operator =(const AnsiString& Mat) { m_Mat = Mat; return *this; } CToto& operator=(const CToto& original) { m_Mat = original.GetMat(); return *this; } }
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
38
39
40
41
42
43
44 ref class CToto { public : CToto(){}; CToto(CToto% original) { m_Mat = original.Mat; } CTor par copie de la FAQ CToto::CToto(const CToto^ original) {m_Mat = original->Mat;} ne compile pas .... protected: String^ m_Mat; public: property String^ Mat { String^ get() {return m_Mat;} void set(String^ value){m_Mat = value;} } est ce que j'ajoute le % pour coller à mon code d'avant ? operator String^% () { return m_Mat; } CToto% operator =(String^% Mat) { m_Mat = Mat; return *this; } CToto% operator =(CToto% original) { m_Mat = original.Mat; return *this; } }
je ne comprend pas que le CTor par copie ne compile pas comme indiqué dans la FAQ...pour lesoperator = ou autre, je n'ai pas trouvé de choses écrite la dessus... on se colle au natif en virant le const et en remplacant juste la référence par % ?
merci de vos conseils avisés..
Partager