关于虚函数一个很奇怪问题
#include "stdio.h"
#include "iostream.h"
class Base
{
private:
int a;
public:
void set(int t)
{
a=t;
}
void g()
{
cout<<"Base:"<<a<<endl;
}
void g(int t)
{
cout<<"Base:"<<t<<endl;
}
virtual void f(int t)
{
cout<<"Base:"<<t<<endl;
}
void h(int t)
{
cout<<"Base:"<<t<<endl;
}
};
/*一个 要public 继承 ,默认继承是没有用*/
class Deiv : public Base
{
private:
float Dval;
public:
void g(int t)
{
cout<<"Deiv:"<<t<<endl;
}
void f(int t)
{
cout<<"Deiv:"<<t<<endl;
}
void h(float t)
{
cout<<"Deiv:"<<t<<endl;
}
};
void main()
{
Base bs,*td;
Deiv tm;
td=&tm;
tm.h(3); //打印 deiv,为什么不打印Base?
tm.h(3.3);
td->h(3);//这个是打印 Base的
printf("Hello");
}
为什么tm.h(3); //打印 deiv,为什么不打印Base? Base g()里面是int 参数啊,不是应该先打印这个吗?