c++实例研究

从0开始

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  104 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
#include <iostream>
#include 
<cstdlib>
using namespace std;

class base
{
    
public:
        
base():m(3){}
        
int m;
    
public:
        
int GetValue(){return --m;}
}
;

class derived1 :public base
{
    
public:
        
virtual int GetValue(){return ++m;}
}
;

class derived2 :public derived1
{
    
public:
        
int GetValue(){return m*=2;}
}
;

int main()
{
    derived2 
*pd2 = new derived2();
    derived2 
&rd2 = *pd2;
    pd2
->GetValue();
    
    derived1 
*pd = pd2;
    derived1 
&rd = *pd;
    pd
->GetValue();
  
    
base *pb = pd;
    
base &rb = *pb;
    pb
->GetValue(); 
    
    printf(
"%d\n", rb.GetValue());
    system(
"PAUSE");
    
return 0;
}

tip:类的成员函数优先于虚函数表内函数
posted on 2010-10-25 10:18 elprup 阅读(457) 评论(0)  编辑 收藏 引用 所属分类: c++面试题

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理