defining Type Characters Class fonctions with pointers
Mar 9, 2018 at 11:40pm UTC
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 Mar 9, 2018 at 11:40pm UTC
Topic archived. No new replies allowed.