Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [SOLVED]Qvector Problem instansiate Thanks ALL
Forum Updated to NodeBB v4.3 + New Features

[SOLVED]Qvector Problem instansiate Thanks ALL

Scheduled Pinned Locked Moved General and Desktop
31 Posts 5 Posters 12.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    toho71
    wrote on last edited by
    #6

    My h.file
    @#ifndef GLOBALPARAMS_H
    #define GLOBALPARAMS_H
    #include <QVector>
    #include <QList>
    #include <QTime>
    #include <clpresetloadstestvalues.h>

    class GlobalParams
    {
    public:
    GlobalParams();
    ~GlobalParams();
    enum Tester {Starttest, Loadtest, Batterytest, ParallellToMains, MainsFailureTEst, PresetLoadsTest , Notest};

    void setTest(int);
    int getTest();
    
    void testRunning(bool );
    bool getTestRunning();
    
    void setNBState(int s);
    void setGBState(int s);
    void setRunningState(int s);
    void setRunningMode(int s);
    
    int getNBState();
    int getGBState();
    int getRunningState();
    int getRunningMode();
    
    void addValuesToLoadsTestTemp(int,int,int);
    
     double getRandomNumbers(float max, float min);
     QString roundnumbers(double dNumber);
    

    private:
    int testTyp;

    int NBState;
    int GBState;
    int RunningState;
    int RunningMode;
    bool TestRunning;
    
    QVector <ClPresetLoadsTestValues> presetVector;
    

    };
    @

    in my cpp file
    @void GlobalParams::addValuesToLoadsTestTemp(int kw, int min, int sec)
    {
    ClPresetLoadsTestValues p;
    p.setKW(kw);
    p.setMin(min);
    p.setSec(sec);

    if (presetVector.isEmpty())
        qDebug() << "Empty";
     else
        qDebug() << "SIZE " << presetVector.size() ;
    
    
    presetVector.append(p);
     qDebug() << "appendad";
    

    }

    @

    My h.file to the object I want to save

    @class ClPresetLoadsTestValues
    {
    public:
    ClPresetLoadsTestValues();
    ClPresetLoadsTestValues(int k, int m, int s);
    ~ClPresetLoadsTestValues();

    //set
    void setKW(int k);
    void setMin(int k);
    void setSec(int k);

    //get
    int getKw();
    int getMin();
    int getSec();

    private:
    int kw;
    int min;
    int sec;

    };
    @
    I tried with a Struct also but same crash

    1 Reply Last reply
    0
    • T Offline
      T Offline
      toho71
      wrote on last edited by
      #7

      I'm using a vector in a different place in my application and there is no problem to use.

      1 Reply Last reply
      0
      • K Offline
        K Offline
        Kxyu
        wrote on last edited by
        #8

        Check for that: you declare your presetVector like a value, so that constructor of it is called before the constructor of GlobalParams. So may be the object of GlobalParams haven't been instantiated yet?

        1 Reply Last reply
        0
        • T Offline
          T Offline
          toho71
          wrote on last edited by
          #9

          I have tried to do like this also.

          @QVector <.theClass> *myVector;
          @
          and in the constructor of globalparams

          @myVector = new QVector<theClass>();
          @
          but same crash ;

          1 Reply Last reply
          0
          • K Offline
            K Offline
            Kxyu
            wrote on last edited by
            #10

            Ok, once again, check if constructor of GlobalParams is called, add there qDebug()<<"anything";

            1 Reply Last reply
            0
            • T Offline
              T Offline
              toho71
              wrote on last edited by
              #11

              It's the first thing I do in my program.

              I got a lot of parameters in that object that I use in other places so thats no problem.

              1 Reply Last reply
              0
              • G Offline
                G Offline
                goetz
                wrote on last edited by
                #12

                Please provide a small, complete, compilable and runnable sample program. We can have a look if and where it crashes ourselves then.

                http://www.catb.org/~esr/faqs/smart-questions.html

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  toho71
                  wrote on last edited by
                  #13

                  Now I'm back to my Work and will send a small application with this Vector problem.
                  I have put some QDebug lines in the code to:

                  But where could I upload the program

                  1 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    p-himik
                    wrote on last edited by
                    #14

                    I think that any file sharing hosting will be suitable. For example try http://rghost.net/

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      giesbert
                      wrote on last edited by
                      #15

                      look for a file hoster (e.g. gitorious.org, but you need a logon) or any other

                      Nokia Certified Qt Specialist.
                      Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        toho71
                        wrote on last edited by
                        #16

                        I have discovered a problem know that is a little confusing.

                        When I try to append a Object or a struct thats not in the class where the vector is the program crashes but when I put a struct inside the class and append this to the vector it works fine

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          toho71
                          wrote on last edited by
                          #17

                          Here is not the TAR file to test

                          1 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            p-himik
                            wrote on last edited by
                            #18

                            Your code works without any crashes. I didn't do any changes though.

                            1 Reply Last reply
                            0
                            • T Offline
                              T Offline
                              toho71
                              wrote on last edited by
                              #19

                              Try again with this code
                              I had comment the problem spots in the last code.
                              The new one is here
                              "Vectorproblems":http://rghost.net/31386231

                              pls

                              1 Reply Last reply
                              0
                              • P Offline
                                P Offline
                                p-himik
                                wrote on last edited by
                                #20

                                toho71 either you have to read more about C++ or you did horrible typo. Here it is:
                                @myClass::~myClass()
                                {
                                delete this;
                                }@

                                1 Reply Last reply
                                0
                                • T Offline
                                  T Offline
                                  toho71
                                  wrote on last edited by
                                  #21

                                  copy and paste is the to magic words
                                  Ok now it works again.

                                  I have to look in my header prj to and see if this is the magic case.

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    toho71
                                    wrote on last edited by
                                    #22

                                    in my testcase i do like this in my constructor

                                    @GlobalParams::GlobalParams()
                                    {
                                    testRunning(false);

                                    qDebug() << presetVector.isEmpty();
                                    qDebug() << presetVector.size() << " vectorsize  and kapacitet =" << presetVector.capacity();
                                    
                                    //Create a tempobject for test
                                    ClPresetLoadsTestValues p(10,10,10);
                                    
                                    qDebug() << "create  object ";
                                    
                                    presetVector.append(p);
                                    qDebug() << "appendat obj";
                                    qDebug() << presetVector.size() << " vectorsize  and kapacitet =" << presetVector.capacity();
                                    

                                    }@

                                    and I got this text in my consol

                                    true
                                    0 vectorsize and kapacitet = 0
                                    create ClPresetLoadsTestValues
                                    create object
                                    delete ClPresetLoadsTestValues
                                    appendat obj
                                    1 vectorsize and kapacitet = 1
                                    delete ClPresetLoadsTestValues

                                    And later when I try to add a ClPresetLoadsTestValues my program crashes and NO i don't delete the object.

                                    here is my object

                                    @@ClPresetLoadsTestValues::ClPresetLoadsTestValues()
                                    {
                                    qDebug() << "create ClPresetLoadsTestValues";
                                    }

                                    ClPresetLoadsTestValues::ClPresetLoadsTestValues(int k, int m, int s)
                                    {
                                    this->kw = k;
                                    this->min = m;
                                    this->sec = s;
                                    qDebug() << "create ClPresetLoadsTestValues";
                                    }

                                    ClPresetLoadsTestValues::~ClPresetLoadsTestValues()
                                    {
                                    qDebug() << "delete ClPresetLoadsTestValues";
                                    }

                                    //set and getters
                                    @

                                    and my func to add the obj

                                    @void GlobalParams::addValuesToLoadsTestTemp(int kw, int min, int sec)
                                    {
                                    ClPresetLoadsTestValues p(kw,min,sec);

                                    qDebug() << "try to append";
                                     qDebug() << this->presetVector.size() << " vektorstorlek"; //IT crashes here
                                    
                                    if (this->presetVector.isEmpty())
                                        qDebug() << "Empty";
                                     else
                                        qDebug() << "SIZE " << presetVector.size() ;
                                    
                                    presetVector.append(p);
                                     qDebug() << "appendad";
                                    

                                    }

                                    @

                                    1 Reply Last reply
                                    0
                                    • P Offline
                                      P Offline
                                      p-himik
                                      wrote on last edited by
                                      #23

                                      Can you make another tarball?

                                      1 Reply Last reply
                                      0
                                      • T Offline
                                        T Offline
                                        toho71
                                        wrote on last edited by
                                        #24

                                        it gonna be big with many files but maybe only the files in the spec region and it will not compile.
                                        I'll try

                                        1 Reply Last reply
                                        0
                                        • P Offline
                                          P Offline
                                          p-himik
                                          wrote on last edited by
                                          #25

                                          You should provide only source files. Do not include object files (and autogenerated moc_, ui_, qrc_*) in the tarball.

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved