begin process at 2012 05 30 01:34:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Probleme a l'acces a une class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme a l'acces a une class

samedi 15 mai 2004 à 19:44:48 | Probleme a l'acces a une class

VBFRANCE

Je suis tout nouveau dans la C++, en fait je decouvre. j'ai un soucis avec les class. En fait, j'ai creer un class pour les strings, jusque la pas de probleme. Mais je n'arrives pas a aceder a l'element de ma string pour en savoir le longueur. Pourtant ma class, et ma fonction marchent. J'ai un message d'erreur: 'strlen' : cannot convert parameter 1 from 'class String' to 'const char *'.
J'aimerais que ma fonction puisse fonctionner qq soit le type de chaine de caractere entrés.
Voici mon code:

#include <string.h>
#include <iostream.h>

class String
{

public:

// Constructeur par default
String() : len(0), ptr(new char('\0')) {}


// Constructeur par copie
String &operator = (const char *);

//Permettre la sortie
friend ostream &operator << (ostream &, const String &);

// Destructeur
~String()
{delete [] ptr;}

private:
int len;
char *ptr;
};

//-------------------------------------------------------------------
// Objets de la class
//-------------------------------------------------------------------

// **************************
// * Constructeur par copie *
// **************************
String &String::operator=(const char *chrs)
{
delete [] ptr;
len = strlen(chrs);
ptr = new char[len + 1];
strcpy(ptr, chrs);
return(*this);
}

// ********************************
// * Permettre la sortie par cout *
// ********************************
ostream &operator<<(ostream &stream, const String &s)
{
return(stream << s.ptr);
}

//-------------------------------------------------------------------
// Fin des Objets de la class
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// Fonctions
//-------------------------------------------------------------------
// Retourne la longueur d'une chaine
__declspec(naked) unsigned int String_Len(char* String1)
{
__asm {
mov ecx,[esp+4]
xor eax, eax

debut:
inc eax
inc ecx cmp byte ptr [ecx],0
jnz short debut
ret
}
}
//-------------------------------------------------------------------
// Fin des fonctions
//-------------------------------------------------------------------

//------------------------------------------------------------------
void main()
{
char* temp1="Bonjour";
String temp2;
temp2="Bonjour";

cout << "longueur de la Chaine temp1 par strlen: "<< strlen(temp1) << endl;
cout << "longueur de la Chaine temp1 par fonction: " << String_Len(temp1) << endl <<endl;;

cout << "longueur d'un Chaine temp1 par strlen: "<< strlen("Bonsoir vous tous") << endl;
cout << "longueur d'une Chaine temp1 par fonction: " << String_Len("Bonsoir vous tous") << endl <<endl;;

/* ces deux la ne marchent pas
cout << "longueur de la Chaine temp2 par strlen: "<< strlen(temp2) << endl;
cout << "longueur de la Chaine temp2 par fonction: "<< String_Len(temp2) << endl;
*/
}

Merci d'avance a tous
samedi 15 mai 2004 à 19:50:29 | Re : Probleme a l'acces a une class

djl


ben le message d'ereeur est expliite, ces fonction attende un const char* en parametre et tu leur file ta string

rajoute dans ta classe string la methode

inline const char *String::c_str()
{
return ptr;
}

et fait strlen(temp2.c_str()) par exemple


Cette discussion est classée dans : string, class, char, longueur, strlen


Répondre à ce message

Sujets en rapport avec ce message

La class string [ par jderf ] Je suis débutant et je teste la class string. Voici un code tous simple, mais y'a un probleme de conversion à la compil que je ne comprend pas. Les er Convertir unsigned char en string^ [ par elise42 ] Bonjour à tous, je code en C++ et je cherche à convertir un unsigned char Buffer_Envoi en un string ^Trame. Quelqu'un aurait il une idée? Merci d'a Operateur + (string) [ par victorcoasne ] Bonjour, Je voulais faire un code du genre : [code=cpp]#include #include using namespace std; int main() { string test = "a" + "b"; cout strlen to const char* [ par thefrox ] Bonjour,je cherche a convertir la fonction C++ strlen pour strcatex :  strcat( buffer , strlen ( buffer ) );Le strlen(char*s Problème de pointeur : erreur non-lvalue in assignment [ par AmStErDaMnEd ] Bonjour,    j'ai récupéré un bon de code pour pouvoir splitter une chaine. Cela fonctionne sans pointeur. Cependant, j'ai besoin de récupérer un char* conjugaison en c++ [ par abdelali62 ] Bonsoir tt le monde c'est mon premier programme en c++ j'ai trouve une difficulter a implante le code de la fonction main mais je vais pas besser les Ma première sérialisation d'objet [ par jex0519 ] Bonjour à tous,Je suis débutant en c++, et j'ai un projet ou je dois sauvegarder mes objets afin de pouvoir les recharger après...<br String et char [ par lektrosonic ] Bonjour,Peut on extraire un char souhaite d'un string ?Mercil3KTr0 Was HeRe Question sur object string [ par lektrosonic ] Bonjour,est ce que l'object peut contenir des unsigned char au lieu de char ?Mercil3KTr0 Was HeRe Problème libération mémoire [ par beeeeh ] Bonjour tout le monde,Je fais des petits exos pour mettre à niveau et je bloque un peu la.Lors de la libération de la mémoire dans le destructeur, le


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales