new 和 delete以及虚析构函数的问题

C++语言 码拜 8年前 (2016-04-01) 990次浏览
class CFather
{
public:
	CFather(){}
	~CFather()	{printf("0\n");}
public:
	void operator delete(void *p, size_t size)	{free(p); printf("1\n");}
public:
	int value;
};
class CChild : public CFather
{
public:
	CChild(){}
	~CChild(){printf("2\n");}
public:
	int value0;
	int value1;
public:
	void operator delete(void *p, size_t size){printf("3\n"); free(p);}
};
int _tmain(int argc, _TCHAR* argv[])
{
	CChild *pChild = new CChild;
	CFather *pTem = pChild;
	delete pTem;
	return 0;
}

如上代码,为什么输出的是0 1而不是 2 3

解决方案

10

帮结帖new 和 delete以及虚析构函数的问题

5

看来题主积分很多呀!

5

接分new 和 delete以及虚析构函数的问题

5

看在本人也经常这么2的份上,分点分?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明new 和 delete以及虚析构函数的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)