cs_Light Angel
Messages postés48Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention 1 janvier 2005 18 juil. 2004 à 18:41
Voila, je met a jour, j'ai rajouté quelques fonctions et rendu ce source standard( (using namespace std)
J'ai inclut les fonction Mid, Right et Left et rajouté un opérateur de concaténation : & (pour ne pas trop dépaysier les habitué du VB qui ce lance dans le C++)
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 6 juil. 2004 à 02:52
t'as oublié un ! devant le strcmp, vu que la tu renvoies pareil que strcmp.
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 6 juil. 2004 à 01:08
T es pas obligé de prendre mal les critiques qu on te fait ... on pas dit que ton code c est de la merde, loin de la, mais qu il y a des choses qui peuvent etre corrigés pour etre améliorés ...
ensuite les remarques sur les headers, c est pour t eviter des problemes plus tard de compatibilité ... menfin bon tu codes comme tu veux...
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 5 juil. 2004 à 23:25
je vois pas de définition de Mid, ni de Asc
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 5 juil. 2004 à 23:23
sinon, il existe std::string, défini dans <string>, chaque api propriétaire c++ définit en général sa propre classe de gestion de chaine (CString des MFC, AnsiString de Borland), et il y a deja des classes string sur ce site.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 5 juil. 2004 à 23:20
En C, on réfléchi po => bin bien sur ...
En C il existe un standard comme en C++
exit() quitte le programme et pas la fonction, et c'est à bannir en C++ (sauf pour le cas d'une faute grave irrécupérable) en effet, les destructeurs ne sont pas executé par défaut lors de cet appel.
(javais que lu les 1eres lignes)
le destructeur virtuel pour faciliter l'héritage et le polymorphisme
class String
{
// Membres privés ----------------------------------------------------------
private:
=> private: inutile, par défaut les membres d'une classes sont privés
char *ToSring(void); => et la version const ? le (void) est utilisé en C, pas en C++
cs_Light Angel
Messages postés48Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention 1 janvier 2005 5 juil. 2004 à 20:58
Bon ... déja, pour l'opérateur [], exit(3) ne quitte pas le programme mais la fonction. Ensuite, si c'est pour laisser des critiques sur les include, sa va ... On s'en fou un peu d'être dans les standart C++. Je vien de passer du C au C++, en C on se fait pas chier a savoir si tell ou tell fichier est standard ou pas ... En C, on réfléchi po, on inclut le fichier avec l'extension.h et on s'en tape de standard (Note, la je parlé pour moi, il doit surement y avoir des codeurs C moins bourrin que moi) ...
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 5 juil. 2004 à 19:30
#include <stdio.h> // Gère les E/S
#include <stdlib.h> // Gère system(char *)
#include <string.h> // Gère les chaine de caractères
#include <fstream.h> // Gère les fichiers
#include
=>>
#include
#include <cstdlib> // Gère system(char *) =>system c'est mal :o
#include <cstring> // Gère les chaine de caractères
#include <fstream> // Gère les fichiers
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 5 juil. 2004 à 18:50
Sympa, mais quelques trucs plutot énervants :
char String::operator [](int Index) const
{
// Teste Index
if (Index < 0 || Index >= Len)
{
// Quitte la fonction
exit(3);
}
// Retourne un caractère
return pString[Index];
}
Alors si la valeur te plait pas ca quitte le programme Oô ? fais un return -1; plutot que exit, comme ca le programmeur qui utilise ta source ne verra pas son programme se fermer pour une raison inconnue ...
operateur <, > etc avec des chaines c est bizarre, enfin bon chacun ses habitudes de code.
Ensuite fais gaffe, ton operateur == renvoie 0 si les 2 chaines sont identiques ...
Et pour la fonction loadfile ... tu ouvre le fichier, et tu lis les caracteres jusqu' a trouver \0 =)
18 juil. 2004 à 18:41
J'ai inclut les fonction Mid, Right et Left et rajouté un opérateur de concaténation : & (pour ne pas trop dépaysier les habitué du VB qui ce lance dans le C++)
6 juil. 2004 à 02:52
{
// Retourne 1 si strcmp retourne 0
return(strcmp(S1.pString, S2.pString));
}
t'as oublié un ! devant le strcmp, vu que la tu renvoies pareil que strcmp.
6 juil. 2004 à 01:08
ensuite les remarques sur les headers, c est pour t eviter des problemes plus tard de compatibilité ... menfin bon tu codes comme tu veux...
5 juil. 2004 à 23:25
5 juil. 2004 à 23:23
5 juil. 2004 à 23:20
En C il existe un standard comme en C++
exit() quitte le programme et pas la fonction, et c'est à bannir en C++ (sauf pour le cas d'une faute grave irrécupérable) en effet, les destructeurs ne sont pas executé par défaut lors de cet appel.
(javais que lu les 1eres lignes)
le destructeur virtuel pour faciliter l'héritage et le polymorphisme
class String
{
// Membres privés ----------------------------------------------------------
private:
=> private: inutile, par défaut les membres d'une classes sont privés
void SaveFile(char *File); => void SaveFile(const char *File) const;
void LoadFile(char *File); => void LoadFile(const char *File);
char Mid(int Start, int Lengh); => je comprends pas vraiment le proto :
récupère DES caractères dans UN char ? manque le const
char Asc(int Start); => char Asc(int Start) const;
char *ToSring(void); => et la version const ? le (void) est utilisé en C, pas en C++
5 juil. 2004 à 20:58
5 juil. 2004 à 19:30
#include <stdlib.h> // Gère system(char *)
#include <string.h> // Gère les chaine de caractères
#include <fstream.h> // Gère les fichiers
#include
=>>
#include
#include <cstdlib> // Gère system(char *) =>system c'est mal :o
#include <cstring> // Gère les chaine de caractères
#include <fstream> // Gère les fichiers
5 juil. 2004 à 18:50
char String::operator [](int Index) const
{
// Teste Index
if (Index < 0 || Index >= Len)
{
// Quitte la fonction
exit(3);
}
// Retourne un caractère
return pString[Index];
}
Alors si la valeur te plait pas ca quitte le programme Oô ? fais un return -1; plutot que exit, comme ca le programmeur qui utilise ta source ne verra pas son programme se fermer pour une raison inconnue ...
operateur <, > etc avec des chaines c est bizarre, enfin bon chacun ses habitudes de code.
Ensuite fais gaffe, ton operateur == renvoie 0 si les 2 chaines sont identiques ...
Et pour la fonction loadfile ... tu ouvre le fichier, et tu lis les caracteres jusqu' a trouver \0 =)