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

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

probleme d'affectaction std::string dans std::string d'une classe


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

probleme d'affectaction std::string dans std::string d'une classe

mercredi 14 avril 2010 à 02:58:16 | probleme d'affectaction std::string dans std::string d'une classe

Rockanos

Bonjour,

j'ai un probleme au niveau de l'affectation d'un std::string dans un autre std::string appartenant a une class.

Exemple:

Code C/C++ :
class listeSport
{
private:
	std::string sonNom;

public:
	void affecterSonNom(std::string nouv)
	{
		sonNom = nouv; // <== Probleme
        }
};

int main()
{
        listeSport * sport;
        sport[indice].affecteSonNom(golf);
}


Merci d'avance !
mercredi 14 avril 2010 à 03:05:12 | Re : probleme d'affectaction std::string dans std::string d'une classe

Rockanos

Escusez moi .. j'ai fourni du code rempli d'erreurs

Voici le bon :

Code C/C++ :
#include <iostream>
#include <fstream>
#include <string>

class listeSport
{
private:
	std::string sonNom;

public:
	void affecterSonNom(std::string nouv)
	{
		sonNom = nouv; // <== Probleme
        }
};

int main()
{
        listeSport * sport;
        sport[0].affecterSonNom("golf");
}
mercredi 14 avril 2010 à 09:13:22 | Re : probleme d'affectaction std::string dans std::string d'une classe

deadhand

Salut !
Tu ne peux pas faire sport[0].XXX !

Tu dois écrire :
Code C/C++ :
sport->affecterSonNom("golf");


Tu n'as pas défini de tableau mais juste un pointeur. Si tu veux un tableau, réserve l'espace mémoire avec un malloc.
mercredi 14 avril 2010 à 10:17:06 | Re : probleme d'affectaction std::string dans std::string d'une classe

CptPingu

Administrateur CodeS-SourceS
Ceci devrait fonctionner:
Code C/C++ :
#include <iostream>

class listeSport
{
private:
  std::string _sonNom;

public:
  void affecterSonNom(const std::string& nouv)
  {
    _sonNom = nouv;
  }
};

int main()
{
  listeSport sport;
  sport.affecterSonNom("golf");

  return 0;
}


@Rockanos: Ici j'ai utilisé la classe elle même sans passer par des pointeurs. Ton problème de base était que tu avais oublié d'instancier ta classe: listSport* sport = new listeSport;

@deadhand: Il y a quelque subtilité dont tu n'es pas au courant :p. En C et C++, un pointeur est un tableau. Donc sport->XXX équivant à (*sport).XXX qui équivaut à (*(sport + 0)).XXX qui équivaut à sport[0].XXX
C'est moche, mais techniquement valide !

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
mercredi 14 avril 2010 à 10:30:41 | Re : probleme d'affectaction std::string dans std::string d'une classe

deadhand

Ah effectivement, je ne savais pas qu'on pouvait prendre ce raccourcis !
Merci !
mercredi 14 avril 2010 à 19:48:52 | Re : probleme d'affectation std::string dans std::string d'une classe

Rockanos

Il y a certaines choses que je ne comprends pas... Ce sont peut-être des bêtes questions mais je ne sais pas aller plus loin si je ne comprends pas ça.

1) A quoi ça sert d'instancier des variables avec pointeur ? (maClasse * uneClasse = new maClasse;)
2) Le système de pointeur pour une classe n'est pas "This" ?
3) Comment marche le système d'affectation qu'il faut utiliser pour cette classe ?
=>

Donc sport->XXX équivant à (*sport).XXX qui équivaut à (*(sport + 0)).XXX qui équivaut à sport[0].XXX



sport[0].XXX devrait fonctionner non ?
vendredi 16 avril 2010 à 21:32:34 | Re : probleme d'affectaction std::string dans std::string d'une classe

Rockanos

Merci pour votre aide.

Je me suis renseigné a propos des vecteur, je les ai utilisés et ça a marché correctement.

Le problème venait du fait qu'un pointeur sur un objet n'est pas un tableau dynamique.. et donc j'avais une erreur avec la mémoire..

Je ne sais pas exactement comment faire pour allouer et reallouer la memoire en C++. Mais les vecteurs font ça tout seul ... ^^


Cette discussion est classée dans : string, probleme, classe, std, affectaction


Répondre à ce message

Sujets en rapport avec ce message

Remplir un string, probleme [ par ChamY ] Bonjour, Je suis en 1ere année de BTS info. J'ai un projet a realiser pendant ces vancances : une bibliotheque. J ai un ptit probleme lors de l uti probleme d'une chaine de caracteres [ par bilaloch ] Bonjour a tous,J'ai un ptit probleme au niveau d'une manipulation sur une chaine de caracteres. Voici le code : std::string *position = <FONT color=# Pb mix managed et unmanaged c++ [ par mastercatz ] Bonjour.J'essaye de faire une classe managée qui servira de wrapper entre mon projet c# et une classe c++ native.Mon problème est que le compilateur m probleme de map erreur de link [ par hisoka56 ] Bonjour, j'ai un problème de link: Linking... edition.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in .... Cela Probleme avec pointeur urilisant string [ par Orlyn ] Bonjour, Je viens de finir mon prog de gestion de liste d'attente avec des structures comme ceci : struct Maillon { int numero; Maillon *suivant; error __declspec(dllimport) lié STL ?? [ par Loki6 ] bonjour tout le monde, alors voilà à la génération de mon projet, étape édition de liens, j'ai une tonne deerror LNK2001: symbole externe non résolu " probleme d'heritage [ par naddoush ] salut tout le monde, j'ai deux classes: classe dialog qui herite de QDialog et classe MyWidget qui herite de QMainWindow. bon, la classe MyWidget a c Probleme de classe, conventions d'appel (MFC) [ par Taurnil ] Bonjour à tous, j'ai posté un topic sur les MFC il y a quelques temps et je m'étonnais de n'avoir aucune réponse, la raison en était toute simple, je Probleme fermeture de Thread!!! [ par Dryko ] Bonjour, Je suis en train de programmer une application MFC dans lequel je créer un thread (avec CreateThread) dans le constructeur de ma classe. Dans Ajouter, Modifier ou Supprimer(lire et écrire) dans un fichier texte [ par cathy9999 ] Bonjour, je souhaite réaliser une gestion de clients en c++, c'est à dire me permettre d'afficher, ajouter, modifier ou supprimer un client qui serait


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,655 sec (3)

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