【发布时间】:2010-11-16 06:24:57
【问题描述】:
关于构造函数重写的任何人..
我有这个
void operator delete(void*) {}
void operator delete(void* p, void*) {}
在我的类中..看起来像重载(相同的函数名和返回类型,但参数列表不同),但它的覆盖......它是如何覆盖的......
谁能解释一下这两行的功能。
【问题讨论】:
-
你能用删除表达式调用第二个重载吗?
-
它没有超载.. 它的压倒一切.. 不,实际上我不了解这两个功能
-
一个问题:为什么?详细说明;你想达到什么目的?如果你想在你的类被释放时有特殊的行为,那就写一个析构函数吧。
-
您永远无法覆盖
operator delete,因为operator delete始终是static,无论是否明确声明。覆盖仅适用于virtual函数。 -
@Charles:
operator delete是一种类似 :-) 的一般规则的例外。对于多态静态已知类,它在最派生(动态)类中查找。但我忘记了细节;如果我需要做这些事情,我会查一下。干杯,
标签: c++ overriding overloading new-operator