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的范围之外,并且应该调用析构函数,否?
经验分享 程序员 微信小程序 职场和发展