//虚函数的用法
//虚函数的参数值实在编译器就已经确定了,因此参数值应取基类默认值
//下面代码测试理解 输出10 30
#include <iostream>
#include <string>
using namespace std;
void println(const std::string&msg)
{
cout<<msg<<"\n";
}
class base
{
public:
base(){println("base::base()");virt();}
void f0(){println("base::f()");virt();}
virtual void virt()
{
println("base::virt()");
}
virtual void f(int i=10,int g=30)
{
cout<<"base::f()"<<i<<endl;
}
};
class Dev:public base
{
public:
Dev(){println("Dev::Dev()");virt();}
void f0(){println("Dev::f()");virt();}
virtual void virt()
{
println("Dev::virt()");
}
virtual void f(int i=20,int j=40)
{
cout<<"Dev::f()"<<i<<j<<endl;
}
};
void main()
{
Dev d;
base *pB=&d;
pB->f();
}
/*
*/
C++ 虚函数相关
最新推荐文章于 2017-03-15 13:17:30 发布