我正在使用构造函数和析构函数进行测试,我想看看是否可以在不先声明的情况下将对象传递给函数,如下例所示:
#include<iostream>
#include<stdlib.h>
using namespace std;
class car
{
public:
string name;
int num;
public:
car(string a, int n)
{
cout << "Constructor called" << endl;
this->name = a;
this->num = n;
}
~car()
{
cout << "Deleted" << endl;
}
};
void display(car* p)
{
cout << "Name: " << p->name << endl;
cout << "Num: " << p->num << endl;
}
int main()
{
display(new car("HYUNDAI", 2012));
}
Run Code Online (Sandbox Code Playgroud)
该display功能运行良好,并且完全符合我的预期,但我想知道:
new如果我在输入中声明了关键字display,为什么我的用户定义的析构函数没有被调用,并且new导致内存泄漏吗?