woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

定义private virtual function是有意义

定义private   virtual   function是有意义的,代码如下:  
  class   B  
  {  
  public:  
      virtual   `B();  
  private:  
      virtual   char*   id()  
      {  
          return   "Base";  
      }  
   
  public:  
      void   Print(){   printf(   "Hello,I   am   %s",   id()   );   }  
  }  
   
  class   D   :   public   B  
  {  
  private:  
      virtual   char*   id()  
      {  
          //
由于是private,这里不能用B::id();  
          return   "Derived";  
      }  
  }  
   
  B*   base   =   new   B();  
  base->Print();  
   
  B*   derived   =   new   D();  
  derived->Print();  
   
 
上述两个输出的内容是不同的,在C++virtual表示多态,publicprotectedprivate表示访问权限,它们是正交的两个概念。private声明虚函数,表示派生类对这个虚函数必需要有自己的实现,而不能调用基类的实现。

posted on 2010-02-25 13:21 肥仔 阅读(1024) 评论(0)  编辑 收藏 引用 所属分类: C++ 基础


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理