c++有趣现象:private的成员函数可以在类的外部调用?

//在网上搜到这样一篇文章:

以下是从孙鑫的VC课程中摘抄的一段程序,
#include <iostream.h>
class base;
base * pbase;
class base
{
public:
base()
{pbase=this;}
virtual void fn()
{cout<<"base"<<endl;}
};
class derived:public base
{private:<br/> void fn()<br/> {cout<<"derived"<<endl;}
};
void main()
{
derived aa;
pbase->fn();
}

以上程序在VC和VC7中输出结果为 derived, 哈,居然private的成员函数可以在类的外部调用.

//我的问题是,难道这是真的吗?private的成员函数可以在类的外部调用.?
//还是这个private关键字不应该使用?

第1个回答  2013-06-07
这么有趣,C++的多态真是强大啊。
相似回答