This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C++ code can't run to main function

In RVMDK3.05, I use simulator to debug C++ code, but it can't run to main function.
(Select LPC2292 in "Options for Target" dialog when creating project)

Sample code in test1.cpp as following:

class MYCLASS
{
  public:
        MYCLASS(){}
        ~MYCLASS(){}
};

MYCLASS myobject;
int main()
{
        while (1);

        return 0;
}

If we remove the destructor, it can run to main function.
Sample code in test2.cpp as following:

class MYCLASS
{
  public:
        MYCLASS(){}
  //    ~MYCLASS(){}   //remove this line
};

MYCLASS myobject;
int main()
{
        while (1);

        return 0;
}

Parents
  • some local objects and some global objects.

    That has nothing to do with it, really. Whether a class needs a destructor depends on the class itself, not on whether its instances are global or local (or rather, of static or non-static storage duration). As a rule of thumb every class should either have one, either explicitly coded or implied by the language.

Reply
  • some local objects and some global objects.

    That has nothing to do with it, really. Whether a class needs a destructor depends on the class itself, not on whether its instances are global or local (or rather, of static or non-static storage duration). As a rule of thumb every class should either have one, either explicitly coded or implied by the language.

Children
  • You are basically talking about the same thing.

    In this case, the global object can probably manage without a destructor, since the behaviour of embedded equipment after main() ends is quite interesting anyway...

    If the same class is also used for dynamically or stack-allocated objects, then these objects may require that the class has a proper destructor, since they may require that a resource is returned/released on destruct.