defining Type Characters Class fonctions with pointers

Hello to all,
I just started a online course for programming P.O.O. Any help would be appreciated. I suffer a lot and I got no clue what to do with what you ll see below. I already spend a week on this, and my teacher gave me the names of the fonctions I need to fill in CPP. I have this in Char.H:

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
48
49
50
51
52
53
54
55
#pragma once

#include <string>
namespace Prog2 {
	class Chaine
	{
	public:
		Chaine();
		Chaine(const Chaine& p_Chaine);
		Chaine(char const* const p_Chaine);

		const Chaine &operator=(const Chaine& p_Chaine);
		const Chaine &operator=(char const* const p_Chaine);

		bool operator<(const Chaine& p_Chaine) const;
		bool operator<=(const Chaine& p_Chaine) const;
		bool operator>(const Chaine& p_Chaine) const;
		bool operator>=(const Chaine& p_Chaine) const;
		bool operator==(const Chaine& p_Chaine) const;
		bool operator!=(const Chaine& p_Chaine) const;

		char &operator[](size_t p_Pos);
		const char &operator[](size_t p_Pos) const;

		Chaine SousChaine(size_t p_Debut, size_t p_TailleMax) const;

		Chaine& Inserer(size_t p_Debut, const Chaine& p_Chaine);
		Chaine& Supprimer(size_t p_Debut, size_t p_TailleMax);

		size_t Trouver(const Chaine& p_Chaine) const;

		~Chaine();

		char const* const CStr() const;

		Chaine &operator+=(const Chaine& p_chaine);

		size_t Taille() const;

		static size_t NonTrouve;

	private:
		

		char *m_Chaine;
		size_t m_TailleChaine;

		bool ValiderInvariants() const;
	};

	Chaine operator+(const Chaine &p_Chaine1, const Chaine &p_Chaine2);
	std::ostream& operator<<(std::ostream &p_Flux, const Chaine &p_Chaine);

	
	std::wstring ToString(const Chaine &p_Chaine);


I need to implement or define (im not sure what word to use here) the class fonctions in Char.CPP but i need help because i dont understand: (code below)

1. the bool operators, how they work and how should I define them.
2. what is the fonction : Chaine::Chaine(char const* const p_Chaine), I understand that the const make the variable stay untouched but how im supposed to code it.
3. and : char &Chaine::operator[](size_t p_Pos);, there is so many pointers and reference fonctions , I find it difficult because there is too many.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
namespace Prog2
{
	
	Chaine::Chaine() 
	{
		PRECONDITION(false); 
		this->m_TailleChaine = 0; //NOTE TAILLE = LENGH
		this->m_Chaine=NULL;

	}
	
	Chaine::~Chaine()
	{
		delete[]m_Chaine;
	}
	
	Chaine::Chaine(const Chaine& p_Chaine)
	{
		this->m_TailleChaine = p_Chaine.m_TailleChaine;
		this->m_Chaine = p_Chaine.m_Chaine;
	}
	
	
	Chaine::Chaine(char const* const p_Chaine) 
	{
		PRECONDITION(p_Chaine != NULL);
		//this->m_TailleChaine = strlen(p_Chaine);
		//this->m_Chaine =  *p_Chaine;
		
	
	}

	const Chaine& Chaine::operator=(const Chaine& p_Chaine)
	{
		m_Chaine = &p_Chaine.m_Chaine;
		return *this;
	}

	
	const Chaine& Chaine::operator=(char const* const p_Chaine)
	{
		PRECONDITION(p_Chaine != NULL);
		return *this;
	}
	
	bool Chaine::operator<(const Chaine& p_Chaine) const {

		return false;
	}
	
	bool Chaine::operator<=(const Chaine& p_Chaine) const {
		return false;
	}
	
	bool Chaine::operator>(const Chaine& p_Chaine) const {
		return false;
	}
	
	bool Chaine::operator>=(const Chaine& p_Chaine) const {
		return false;
	}
	
	bool Chaine::operator==(const Chaine& p_Chaine) const {
		return false;
	}

	bool Chaine::operator!=(const Chaine& p_Chaine) const {
		return false;
	}
	
	
	char &Chaine::operator[](size_t p_Pos)
	{
		PRECONDITION((p_Pos >= 0) && (p_Pos < )); 
		char a = 'a';
		return a;
	}

	
	const char &Chaine::operator[](size_t p_Pos) const 
	{
		PRECONDITION((p_Pos >= 0) && (p_Pos < taille)); 
		char a = 'a';
		return a;
	}

	
	char const* const Chaine::CStr() const
	{
		return NULL;
	}
	
	Chaine &Chaine::operator+=(const Chaine& p_chaine)
	{
		return *this;
	}
	
	size_t Chaine::Taille() const
	{
		return 0;
	}
	
	Chaine Chaine::SousChaine(size_t p_Debut, size_t p_TailleMax) const
	{
		return "";
	}

	Chaine& Chaine::Inserer(size_t p_Debut, const Chaine& p_Chaine)
	{

		return *this;
	}
	
	Chaine& Chaine::Supprimer(size_t p_Debut, size_t p_TailleMax)
	{
		return *this;
	}
	
	size_t Chaine::Trouver(const Chaine& p_Chaine) const
	{

		return Chaine::NonTrouve;
	}


	Chaine operator+(const Chaine &p_Chaine1, const Chaine &p_Chaine2)
	{
		return "";
	}
	
	std::ostream& operator<<(std::ostream &p_Flux, const Chaine &p_Chaine)
	{
		p_Flux << p_Chaine.Trouver() << std::endl;
			
		return p_Flux;
	}

	


Thank you very much
Last edited on
Topic archived. No new replies allowed.