【问题标题】:interpretation of keyword new in C++C++中关键字new的解释
【发布时间】:2016-04-27 15:13:06
【问题描述】:

cppreference的网站上,我看到下面这句话:

这是 C++ 中保留关键字的列表。由于它们被语言使用,这些关键字不可用于重新定义或重载

在关键字中,有。但我知道我们可以在 C++ 中重载 new。 所以上面的引用是错误的,或者关键字 new 有别的东西吗?

【问题讨论】:

  • 我建议找到一个替代站点来用于 C++ refs... 一个具有更可信声誉的站点。这将是一个,但有很多可用。 msdn.microsoft.com/en-us/library/hh875057.aspx
  • @nixxbb cppreference.com 有什么问题?比cplusplus.com好多了
  • 你试过void new() {}吗?
  • @nixxbb,cppreference 简直是最好的在线 C++ 参考。顺便说一句,这里是正确的。
  • @nixxbb:哈哈,你刚才是不是断言 MSDN 比 cppreference 有“更可信的声誉”?

标签: c++ operator-overloading new-operator


【解决方案1】:

你不能超载new。您可以重载operator new,这是new 在构造对象之前调用以分配内存的函数。

【讨论】:

  • 我的意思是 new 只能是操作符吧?将运算符作为关键字的目的是什么?如果我们在 C++ 标准中没有规定“new”作为关键字,我们仍然可以使用 new 来做它现在所做的事情,只需将 new 视为预定义的函数,对吧?
  • @gab -- 不,关键字new 不能作为函数实现。它必须知道类型及其构造函数,这是编译器的职责。
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-30
  • 1970-01-01
相关资源
最近更新 更多