请教 C++的一个困惑 (operator delete)# Programming - 葵花宝典
c*a
1 楼
【 以下文字转载自 Quant 讨论区 】
发信人: ccca (cc), 信区: Quant
标 题: 请教 C++的一个困惑 (operator delete)
发信站: BBS 未名空间站 (Fri Mar 21 20:59:41 2008), 转信
请看如下代码, 其结果是输出 4, 既调用了 A的operator delete(...)
由于 C++ 只能用 reference 和 pointer 实现 polymorphism.
但是如果 用pointer的话, 却无法调用正确的delete 释放内存。
个人认为问题很严重!(operator delete无法声明为 virtual)。
请牛人指点。
class A
{
public:
void operator delete(void* p, size_t size){cout << size;};
private:
int k;
};
class B:public A
{
public:
void operator delete(void* p, size
发信人: ccca (cc), 信区: Quant
标 题: 请教 C++的一个困惑 (operator delete)
发信站: BBS 未名空间站 (Fri Mar 21 20:59:41 2008), 转信
请看如下代码, 其结果是输出 4, 既调用了 A的operator delete(...)
由于 C++ 只能用 reference 和 pointer 实现 polymorphism.
但是如果 用pointer的话, 却无法调用正确的delete 释放内存。
个人认为问题很严重!(operator delete无法声明为 virtual)。
请牛人指点。
class A
{
public:
void operator delete(void* p, size_t size){cout << size;};
private:
int k;
};
class B:public A
{
public:
void operator delete(void* p, size