We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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; }
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.
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.