qt计算机析构函数,在Qt控制台场景中未调用析构函数
我有一个问题可能看起来太简单了,但我想了解无论如何答案。在Qt控制台场景中未调用析构函数
代码示例如下。
#include
#include "parent.h"
#include "childa.h"
#include "childb.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Parent one;
ChildA two;
ChildB three;
return a.exec();
}
#ifndef CHILDA_H
#define CHILDA_H
#include
#include "parent.h"
using namespace std;
class ChildA : public Parent
{
public:
ChildA();
~ChildA();
};
#endif // CHILDA_H
#ifndef CHILDB_H
#define CHILDB_H
#include
#include "parent.h"
using namespace std;
class ChildB : public Parent
{
public:
ChildB();
~ChildB();
};
#endif // CHILDB_H
#ifndef PARENT_H
#define PARENT_H
#include
using namespace std;
class Parent
{
public:
Parent();
virtual ~Parent();
};
#endif // PARENT_H
#include "childa.h"
ChildA::ChildA()
{
cout << "in Child A const ";
}
ChildA::~ChildA()
{
cout << "in Child A destructor ";
}
#include "childb.h"
ChildB::ChildB()
{
cout << "in Child B const ";
}
ChildB::~ChildB()
{
cout << "in Child B destructor ";
}
#include "parent.h"
Parent::Parent()
{
cout << "in Parent const ";
}
Parent::~Parent()
{
cout << "in Parent destructor ";
}
为什么我没有看到所谓的析构函数?
对象变量应该在main的范围之外,并且应该调用析构函数,否?
我有一个问题可能看起来太简单了,但我想了解无论如何答案。在Qt控制台场景中未调用析构函数 代码示例如下。 #include #include "parent.h" #include "childa.h" #include "childb.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Parent one; ChildA two; ChildB three; return a.exec(); } #ifndef CHILDA_H #define CHILDA_H #include #include "parent.h" using namespace std; class ChildA : public Parent { public: ChildA(); ~ChildA(); }; #endif // CHILDA_H #ifndef CHILDB_H #define CHILDB_H #include #include "parent.h" using namespace std; class ChildB : public Parent { public: ChildB(); ~ChildB(); }; #endif // CHILDB_H #ifndef PARENT_H #define PARENT_H #include using namespace std; class Parent { public: Parent(); virtual ~Parent(); }; #endif // PARENT_H #include "childa.h" ChildA::ChildA() { cout << "in Child A const "; } ChildA::~ChildA() { cout << "in Child A destructor "; } #include "childb.h" ChildB::ChildB() { cout << "in Child B const "; } ChildB::~ChildB() { cout << "in Child B destructor "; } #include "parent.h" Parent::Parent() { cout << "in Parent const "; } Parent::~Parent() { cout << "in Parent destructor "; } 为什么我没有看到所谓的析构函数? 对象变量应该在main的范围之外,并且应该调用析构函数,否?