小编Thu*_*ang的帖子

关于构造函数和内存泄漏的问题

我正在使用构造函数和析构函数进行测试,我想看看是否可以在不先声明的情况下将对象传递给函数,如下例所示:

#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导致内存泄漏吗?

c++ constructor destructor memory-leaks class

1
推荐指数
1
解决办法
227
查看次数

标签 统计

c++ ×1

class ×1

constructor ×1

destructor ×1

memory-leaks ×1