小编lov*_*ing的帖子

C++中new运算符的运算符重载

在以下代码中:

#include<stdlib.h>
#include<iostream>

using namespace std;

class Test {
public:
    void* operator new(size_t size);
    void operator delete(void*);
    Test() { cout<<"\n Constructor called"; }
    ~Test() { cout<<"\n Destructor called"; }
};

void* Test::operator new(size_t size)
{
    cout<<"\n new called";
    void *storage = malloc(size);
    return storage;
}

void Test::operator delete(void *p )
{
    cout<<"\n delete called";
    free(p);
}

int main()
{
    Test *m = new Test();
    delete m;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

new called
 Constructor called
 Destructor called
 delete called
Run Code Online (Sandbox Code Playgroud)

但是,当我调用 new …

c++ operator-overloading

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

标签 统计

c++ ×1

operator-overloading ×1