IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

erreur avec new


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut erreur avec new
    Je n'arrive pas a utiliser new correctement, j'ai le message:
    "new peut uniquement être utilisé avec des types valeur simples" avant la compilation.
    Si vous avez une idée, merci.

    dans mon .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public ref class CppWrapperClass
    {
    	private:
    		Delaunay::DelaunayClass* pClass;
    	public:
    		CppWrapperClass();
    ...	
    }
    dans mon .cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CppWrapperClass::CppWrapperClass(void)
    {
    	pClass = new Delaunay::DelaunayClass;  <- !!
    }

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Cela requiert l'utilisation d'un constructeur.
    J'ajoute par principe le unique_ptr (que tu trouveras dans <memory>)
    Il est rarissime d'avoir besoin de stocker un new en dehors d'un "smart pointer" tel que unique_ptr (ou shared_ptr, parfois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class CppWrapperClass {
    	private:
    		std::unique_ptr<Delaunay::DelaunayClass> pClass;
    	public:
    		CppWrapperClass(): pClass(new Delaunay::DelaunayClass() ) {}
    };
    voire mieux encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class CppWrapperClass {
    	private:
    		std::unique_ptr<Delaunay::DelaunayClass> pClass;
    	public:
    		CppWrapperClass(): pClass( std::make_unique<Delaunay::DelaunayClass>() ) {}
    };
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Etant donné le public ref class tu n'es pas en C++ mais C++/CX ou CLI et une classe managée ne peut pas contenir d'allocation dynamique sur un type non managé ?
    Pour allouer dynamiquement une classe managée, c'est ref new ou gcnew il me semble.

    Je trouve bien ça sur SO https://stackoverflow.com/questions/...-managed-class qui indique que ça devrait marcher mais le message d'erreur en français ne retourne aucun résultat chez moi.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Je veux du C++, donc j'ai enlever le "ref".
    J'ai la même erreur:
    "new peut uniquement être utilisé avec des types valeur simples" avant la compilation.

    .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class CppWrapperClass
    {
    	private:
    		std::unique_ptr<Delaunay::DelaunayClass> pClass;
    	public:
    		CppWrapperClass();
    		~CppWrapperClass();
    }
    .cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CppWrapperClass::CppWrapperClass(void)
    {
    	std::unique_ptr<Delaunay::DelaunayClass> pClass(new Delaunay::DelaunayClass); <- !!
    }
     
    CppWrapperClass::~CppWrapperClass(void)
    {
    	pClass.reset();
    }

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    appelle ton constructeur. Il doit au minimum y avoir les parenthèses de l'appel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Delaunay::DelaunayClass /* entre là -> */() /* <- et là */
    Cela dit, n'utilise pas new, mais make_unique.

    Enfin, l'intérêt premier de unique_ptr, c'est de détruire son pointé quand lui-même est détruit.
    reset n'est pas nécessaire dans le destructeur.

    (Son autre intérêt, c'est de ne pas être copiable, mais transférable.)

    Un peu de documentation:
    utilisation de new
    le RAII
    <memory>
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Je sais pas trop ce que tu trafiques, mais choisir de travailler en managé ou non c'est un peu plus complexe que d'enlever le ref de la déclaration d'une classe.
    Pourrait-on avoir un semblant de contexte ou quoi que ce soit pour comprendre ce que tu espères faire ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    On peut avoir la déclaration de la classe "DelaunayClass" ?
    Parce que, comme le dit @Bousk, on ne fait pas "comme on veut", à l'arrache.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Bon en fait je suis un peu perdu car je souhaite utiliser la classe "CppWrapperClass" en C# et c'est pour ça que j'avais mis ref, mais je ne sais plus si il le faut avec la définition de la classe pour l'appeler depuis C#

    CppWrapper.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class "ref?" CppWrapperClass
    {
    	private:
    		std::unique_ptr<Delaunay::DelaunayClass> pClass;
    	public:
    		CppWrapperClass();
    		~CppWrapperClass();		
    };
    CppWrapper.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CppWrapperClass::CppWrapperClass(void)
    {	
    	std::unique_ptr<Delaunay::DelaunayClass> pClass(std::make_unique<Delaunay::DelaunayClass>());
    }
     
    CppWrapperClass::~CppWrapperClass(void)
    {
    	pClass.reset();
    }
    ClassCpp.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class DelaunayClass
    {
    	public:
    		DelaunayClass();
    		~DelaunayClass();
    }
    ClassCpp.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DelaunayClass::DelaunayClass(void)
    	{
    	}
     
    DelaunayClass::~DelaunayClass(void)
    	{
    	}
    A la compilation, j'ai l'erreur de jeton:
    Fichier:
    CppWrapper.cpp
    Code Description:
    Erreur LNK2028 jeton non rÚsolu (0A0000F1) "public: __thiscall Delaunay::DelaunayClass::DelaunayClass(void)" (??0DelaunayClass@Delaunay@@$$FQAE@XZ) rÚfÚrencÚ dans la fonction "class std::unique_ptr<class Delaunay::DelaunayClass,struct std::default_delete<class Delaunay::DelaunayClass> > __cdecl std::make_unique<class Delaunay::DelaunayClass>(void)" (??$make_unique@VDelaunayClass@Delaunay@@$$V@std@@$$FYA?AV?$unique_ptr@VDelaunayClass@Delaunay@@U?$default_delete@VDelaunayClass@Delaunay@@@std@@@0@XZ) CppWrapper ..\CppWrapper\CppWrapper.obj 1

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    OK, c'est bien plus claire.
    Pas de panique.

    Je pense que le message d'erreur est là parce que "ClassCpp.cpp" n'est pas compilé.

    Mais le problème n'est pas là.
    Vous ne devez pas avoir de champ d'un type non managé dans un objet managé.
    Votre objet est déplaçable en mémoire par le Garbage-Collector, pas votre champ natif.
    Un pointeur, ça passe, mais un "std::unique_ptr", c'est pas un pointeur, c'est un objet qui gère la durée de vie d'un pointeur.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    1- si je veux appeler CppWrapperClass depuis c#, je dois déclare ma classe managée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public ref class CppWrapperClass
    {
    ...
    }
    oui/non ?

    2- std::unique_ptr<Delaunay::DelaunayClass> étant un type non managé, je ne peux pas l'utiliser avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::unique_ptr<Delaunay::DelaunayClass> pClass;
    mais plutot utiliser:

    Delaunay::DelaunayClass* pClass; comme champs managé

    oui/non ?

    3- si 1 et 2 sont oui, alors mon constructeur n'est pas résolu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CppWrapperClass::CppWrapperClass(void)
    {
    	pClass = new Delaunay::DelaunayClass(); bug->voir 1er post
    }
    comment résoudre mon constructeur?

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    1- Si "appeler simplement" : OUI
    2- Oui
    3- Dans votre 1er poste, il n'y avait pas "()" dans le code et le numéro d'erreur n'est pas mentionné.
    Code + numéro d'erreur SVP.

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Dans tous les cas, pourquoi faire une allocation dynamique dans le constructeur et pas utiliser une simple variable membre non pointeur ?

    il n'y avait pas "()" dans le code
    Je ne pense pas qu'il s'agisse d'une erreur, tant que le type possède un constructeur par défaut qui sera appelé.

    Le problème est le type non managé dans du code managé.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Dans tous les cas, pourquoi faire une allocation dynamique dans le constructeur et pas utiliser une simple variable membre non pointeur ?
    Vous ne devez pas avoir de champ d'un type non managé dans un objet managé.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    J'ai modifier mon pointeur * en ^ pour le rendre managé et remplacé new par gcnew: sa marche.

    CppWrapper.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public ref class CppWrapperClass
    {
    	private:		
    		Delaunay::DelaunayClass^ pClass;
    	public:
    		CppWrapperClass();
    		~CppWrapperClass();
    }
    CppWrapper.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CppWrapperClass::CppWrapperClass(void)
    {
    	pClass = gcnew Delaunay::DelaunayClass;
    }
     
    CppWrapperClass::~CppWrapperClass(void)
    {
    	delete pClass;
    }
    et rendu ma classe Delaunay managée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public ref class DelaunayClass
    {
    	public:
    		DelaunayClass();
    		~DelaunayClass();
    }
    A priori le C++/CLI est la seule solution pour communiquer avec le C# (je pense?)

  15. #15
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 470
    Points : 6 107
    Points
    6 107
    Par défaut
    Citation Envoyé par ternel Voir le message
    appelle ton constructeur. Il doit au minimum y avoir les parenthèses de l'appel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Delaunay::DelaunayClass /* entre là -> */() /* <- et là */
    [...]

    Un peu de documentation:
    utilisation de new
    Je confirme les dires de Bousk : dans une expression avec new qui appelle le constructeur par défaut, les parenthèses du constructeur sont facultatives. Par exemple, le code suivant compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string* test = new std::string;
    D'ailleurs, le lien que tu as donné en parle. Voir le passage : « If initializer is absent, the object is default-initialized. »

  16. #16
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    ah…
    Merci pour ta question, rubisvert, j'aurai appris quelque chose en essayant d'y répondre.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    J'ai utilisé gcnew pour résoudre mon problème, mais j'ai trouvé une vidéo "http://www.dailymotion.com/video/x32iyz7" où l'auteur utilise new et non gcnew dans sa classe managée, donc là j'y perds mon lation puisque c'est ce que j'ai essaué de faire sans succés ?!

    il utilise:

    MyStack.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class MyStack
    {
    ...
     
    }

    MyStackWrapper.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public ref class StackWrapper
    {
    ...
    	private:
    		MyStack* Stack;
    ...
    }
    et dans son c#:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StackWrapper stack=new StackWrapper();

  18. #18
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Il utilise new dans le code C#, qui n'est pas du C++.
    gcnew est une fonction C++ (relative à C++/CLI)

    C'est normal de perdre ton latin en lisant du grec.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Dans sa vidéo, c'est le new du constructeur dans MyStackWrapper.cpp qui m'interpelle, pas celui du c#.

    MyStackWrapper.cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MyStackWrapper::StackWrapper::StackWrapper()
    {
    	stack=new Mystack();   
    }
    puisque j'avais utiliser pour mon projet aussi un new dans mon constructeur et que ça ne marche pas ?!

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Sa classe est un wrapper qui ne contient que cette donnée.
    Jusque là on ne sait toujours rien de ton projet et ton code donc à part tergiverser sur la couleur de la lune je vois pas ce qu'on peut t'apporter de plus.
    Ecrire un wrapper tu as des milliers de réponses sur Google
    https://msdn.microsoft.com/en-us/library/ms235281.aspx
    https://www.codeproject.com/Articles...han-minutes#A8
    ...
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Lazarus] Avertissement ou erreur avec New pointeur
    Par ThWilliam dans le forum Lazarus
    Réponses: 6
    Dernier message: 25/05/2017, 12h38
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo