旅途

如果想飞得高,就该把地平线忘掉

dynamic

#include <iostream>
using namespace std;
class employee{
public:
    virtual void salary(){
        cout<<"employee salary"<<endl;
    }

};
class programmer:public employee{
public:
    void salary()
    {
      cout<<"programmer salary"<<endl;
    }
    void bonus()
    {
       cout<<"programmer bonus"<<endl;
    }
};
void payroll(employee *pe)
{
   programmer *pm=dynamic_cast<programmer*>(pe);
   if(pe)
   {
       pm->bonus();
   }
   else
   {
       pe->salary();
   }
}

int main()
{

   employee *pe=new programmer;
   payroll(pe);
}
在VC下运行,总是抛出异常。
project-->   C/C++-->project   option   加上/GR
靠RTTI实现的,不过VC默认情况下是关掉了RTTI的,因为RTTI会有运行时的消耗,

影响效率......


posted on 2007-09-28 22:28 旅途 阅读(143) 评论(0)  编辑 收藏 引用 所属分类: C/C++


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