begin process at 2012 05 30 13:42:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

'this' : utilisé dans la liste des initialiseurs membre de base


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

'this' : utilisé dans la liste des initialiseurs membre de base

vendredi 2 septembre 2005 à 17:34:49 | 'this' : utilisé dans la liste des initialiseurs membre de base

vecchio56

Administrateur CodeS-SourceS
J'obtiens ce warning pour l'exemple suivant. (c'est qu'un warning donc je m'en fous mais j'aimerais savoir quel est le problème quand même).
---------------------------------------------------
#include <iostream>
using namespace std;

class A;

class B
{
public:
  A* m_parent;

  B(A* parent)
  {
    m_parent = parent;
  }
};

class A
{
public:
  B m_child;
  int x;
  A(): m_child(this)
  {
    x = 12;
  }
};

int main()
{
  A a;
  cout << a.m_child.m_parent->x << endl;
}
---------------------------------------------------
L'exemple peut paraitre assez bizarre ou même moche, mais j'ai besoin de faire ca. L'affichage de x à la fin montre que le warning n'a pas de raison d'être puisque tout marche bien
Je voudrais savoir si c'est un coup de bol et si dans certains cas ca ne marcherait pas
Merci
vendredi 2 septembre 2005 à 18:18:40 | Re : 'this' : utilisé dans la liste des initialiseurs membre de base

steve_clamage

Réponse acceptée !
Quand tu fais
A(): m_child(this)

le constructeur de B est appelé avec l'adresse d'un A dont les membres ne sont pas construit, ca pourrait provoquer un comportement indéfinis si tu ne prends pas ca en considération dans le constructeur de B. Dans ton cas ca ne pose pas de probleme et le warning est juste la pour t'avertir.

vendredi 2 septembre 2005 à 18:23:10 | Re : 'this' : utilisé dans la liste des initialiseurs membre de base

vecchio56

Administrateur CodeS-SourceS
OK, ca me semble tellement évident. Désolé pour le dérangement


Cette discussion est classée dans : class, liste, utilisé, parent, warning


Répondre à ce message

Sujets en rapport avec ce message

Liste d'éléments (comme des String) en VC++.Net (2003) [ par doudounico ] Bonjour, Je souhaiterais créer une liste de String (tableau de taille variable). Je pourrais utiliser une ArrayList mais j'obtiens un problème de cas héritage & template [ par rolm ] Bonjour, J'aurai besoin d'un peu avec des tempates. En fait je voudrais créer une class qui hérite d'une class template mais d'un type donné. par e liste de liste en C++ pour manipuler des graphe [ par sbeclo007 ] bonjour, je suis un debutant en c++,et j'espere que vous m'aider à bien savoir comment implemantté un progm de Prim. la premiere des chose qui me gen Liste de liste pour :graphe et algo de Prim [ par sbeclo007 ] // Liste de sommet class Liste_Sommet :public Liste,public Sommet { public: Liste_Sommet (){} void affiche(); Sommet& Sommet_courant(); void Sommet_pr Liste chainée [ par foufidou ] salu tout le monde,je travail sur un projet qui est uen mediatheque (cd + video + livre) biensur c en liste chainé c a dir ke j'ai une liste ki contie Class et fenetre [ par abdoulax ] Bonjour, Je voudrai créer une class qui contient toutes les méthodes correspondant à l'affichage de fenêtre. Le but étant de passé des variables entr Déclaration d'une class [ par Turok ] Salut, Je débute en C++, et dans mon prog j'ai créer une class. Le prob, c'est que quand une instance de cette class (Class_object objet(""), pour pou class et fichier [ par lilington ] salut j'ai 2 questions: 1- est il possible de stocker une classe dans un fichier comme on ferai pour une structure? par exemple si je fais un carnet d pb comunication dial fille-parent [ par gege1024 ] j'ai un dial parent qui lance un dial NON MODAL fille, comment recuperer dans la class du dial parent l'evenement du clic sur le bouton OK de la fille Récuperer dans un executable la liste d'une multi-selection de fichiers dans un explorateur [ par CoyoteVsBeepBeep ] hello,j'ai developpé un soft de compilation en C++ mode console.son fonctionnement est simple.je place un raccourci vers mon fichier compil.exe dans l


Nos sponsors


Sondage...

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 : 5,242 sec (3)

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