我正在研究一个ex1
需要一个静态成员变量的类y
。该静态成员变量是指向ex2
具有自己的构造函数和析构函数的类对象的指针。现在我知道如何y
通过在类外定义变量来初始化它。但是如何调用变量的析构函数y
呢?我需要使用delete
语句,但是该语句的放置位置。我需要调用 class 的构造函数和析构函数ex2
。
我的问题的等效代码如下所示:
#include<iostream>
class ex2 {
public:
int n;
ex2(int num) {
n = num;
std::cout << "Constructor of ex2\n";
}
~ex2(){std::cout << "Destructor of ex2\n";}
};
class ex1 {
public:
static ex2 *y; //static member variable
ex1() {std::cout << "Constructor of ex1\n";}
~ex1() {std::cout << "Destructor of ex1\n";}
};
ex2 *ex1::y = new ex2(90); //definition for static member
int main()
{
ex1 y1;
return 0;
}
输出是:
Constructor of ex2
Constructor of ex1
Destructor of ex1
请帮助了解如何调用ex2
. 在类的所有实例都被销毁之后,还需要调用析构函数ex1
。