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

Langage C++ Discussion :

boost multiArray membre d'une classe


Sujet :

Langage C++

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 49
    Points
    49
    Par défaut boost multiArray membre d'une classe
    Bonjour,

    je souhaite ecrire une classe contenant un tableau boost(multiarray) susceptible d'etre redimensionné lors de l'utilisation dudit l'objet.

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    typedef boost::multi_array<int, 2> array_type;
    typedef array_type::index index;
     
    array_type::extent_gen extents;
     
     
    class Truc {
    public:
        Truc ( unsigned int num_elements ) : A( boost::extents[ num_elements ][10] )
        {
    		redimensionner();
        }
     
    	boost::multi_array<double,2> A;
    	//int m_n;
        //
    	array_type::extent_gen extents;
     
    	void redimensionner(){
    		A[1][1]=12;
    		A.resize( extents[4][3] );
    	}
     
     };
     
    int main()
    {
        Truc objet1(100);
        objet1.A[7][5] = 18;
        std::cout << "objet1.A[7][5] = " << objet1.A[7][5] << std::endl;
    	std::cout << "objet1.A[1][1] = " << objet1.A[1][1] << std::endl;
     
    	system("pause");
        return 0;
    }
    En fait, le programme plante sans donner d'explication dans la fenetre de debogage. Il y a seulement une console qui s'ouvre avec


    Debug Error!
    Program: a\Deskop\Projects...

    R6010 has been called
    (Press Retry to debug the application)

    et si je fais retry, je tombe sur :

    essai_C++.exe has triggered a breakpoint

    et le fichier ouvre sur : crt0msg.c situé dans


    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src

    je bute, mais si qqn a une solution, je suis preneur!


    Merci par avance,
    Olivier

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Pas de problème chez moi, sauf :
    * array_type::extent_gen extents; répété 2 fois
    * objet1.A[7][5] = 18; et std::cout << "objet1.A[7][5] = " << objet1.A[7][5] << std::endl; tu tentes d'accéder à des indices qui n'existe plus après dimensionnement

    Si le problème persiste, tu utilises quelle version de boost ? compilateur ?

Discussions similaires

  1. [MFC] rendre un thread membre d'une classe.
    Par giova_fr dans le forum MFC
    Réponses: 6
    Dernier message: 20/02/2006, 18h37
  2. Objet vector<Type> membre d'une classe
    Par Chewbi dans le forum SL & STL
    Réponses: 3
    Dernier message: 16/02/2006, 17h12
  3. Pointeur sur des fonctions membres d'une classe
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 11h35
  4. [VB.NET]Reflexion lister les membres d'une classe ...presque
    Par lucie.houel dans le forum ASP.NET
    Réponses: 19
    Dernier message: 20/09/2005, 13h49
  5. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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