虚函数,继承之类的问题

#include "stdio.h"
#include "string.h"


class Father
{
public:
name()
{printf("father name\n");};

virtual call()
{printf("father call\n");};

};

 

class Son: public Father
{
public:
name()
{printf("Son name\n");};

virtual call()
{printf("Son call\n");};

};

main()
{

Son *Son1=new Son();
Father *father1=(Father *)Son1;

father1->call();
father1->name();

((Son *)(father1))->call();
((Son *)(father1))->name();


Father *f2=new Father();
Son *s2=(Son*)f2;
s2->call();
s2->name();

((Father *)(s2))->call();
((Father *)(s2))->name();
}
//虚函数与指针的类型有关(指针是什么类型就调用哪个类型的类的对应函数)
//非虚函数的指向与指向的地址有关,而不是与指针类型相关(对于非虚函数,无论指针是什么类型,函数调用时只调用指针指向的地址(指向的对象的类型),与该指针是什么类型无关)

posted on 2013-10-23 13:50  iamdanger  阅读(156)  评论(0编辑  收藏  举报

导航