假设我告诉你 class(类)d 从 class(类)b publicly derived(公有继承),而且在 class(类)b 中定义了一个 public member function(公有成员函数)mf。mf 的参数和返回值类型是无关紧要的,所以我们就假设它们都是 void。换句话说,我的意思是:
class b {
public:
void mf();
...
};
class d: public b { ... };
甚至不必知道关于 b,d,或 mf 的任何事情,给定一个类型为 d 的 object(对象)x,
d x; // x is an object of type d
对此你或许非常吃惊,
b *pb = &x; // get pointer to x
pb->mf(); // call mf through pointer
的行为不同于以下代码:
d *pd = &x; // get pointer to x
pd->mf(); // call mf through pointer
因为在两种情况中,你都调用了 object(对象)x 中的 member function(成员函数)mf。因为两种情况中都是同样的 function(函数)和同样的 object(对象),它们的行为应该有相同的方式,对吗?
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器