错误运算符 new[] :函数不接受 1 个参数

发布于 2024-09-18 17:36:20 字数 444 浏览 5 评论 0原文

我有重载运算符 new 的代码。下面的代码在 Linux (gcc4x) 下工作正常,但在 Windows (Visual C++ 2008 Express Edition) 下工作正常

Visual Studio 2008 Express Edition 下的代码报告

错误 C2660:运算符 new[]:函数不接受 1 个参数

class dummy{};
void* operator new[] (size_t size, dummy gcp)
{
  return ::operator new[](size);   //error
}

int main()
{
    dummy dummyobj;
    dummy* ptr = new (dummyobj) dummy[5];
    return 0;
}

I have code that overloads operator new. The code below works fine under Linux (gcc4x) but not Windows (Visual C++ 2008 Express Edition)

The code under Visual Studio 2008 Express Edition reports

error C2660: operator new[] : function does not take 1 arguments

class dummy{};
void* operator new[] (size_t size, dummy gcp)
{
  return ::operator new[](size);   //error
}

int main()
{
    dummy dummyobj;
    dummy* ptr = new (dummyobj) dummy[5];
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随梦而飞# 2024-09-25 17:36:20

您可能需要#include

You might need to #include <new>.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文