类中operator new
时间: 2023-10-14 10:14:01 浏览: 82
operator_new.cpp
在C++中,operator new是用于动态分配内存的函数。它可以被重载,以便在分配内存时执行特定的操作。在类中重载operator new可以实现自定义内存分配策略,例如可以使用自定义的内存池来提高程序的性能。
在类中重载operator new,可以使用以下语法:
```c++
void* operator new(size_t size);
```
其中,size_t是一个无符号整数类型,表示要分配的内存大小。
示例代码:
```c++
class MyClass {
public:
void* operator new(size_t size) {
void* p = malloc(size);
std::cout << "Allocating " << size << " bytes" << std::endl;
return p;
}
};
int main() {
MyClass* obj = new MyClass();
delete obj;
return 0;
}
```
在上面的例子中,MyClass类重载了operator new,使用标准库函数malloc来分配内存,并在分配内存时输出一条消息。当程序执行new MyClass()时,会调用MyClass的operator new函数来分配内存。当程序执行delete obj时,会调用默认的operator delete函数来释放内存。
阅读全文