(C++)虚函数这样理解对吗?
来源:百度知道 编辑:UC知道 时间:2024/05/01 04:16:29
class a{
public:
vitual int fcn();
};
class b:public a
{
int fcn(int);
};
加上virtual后,两个fcn函数就可以像在同一个作用域内提供操作,如果没有virtual的话,在a的fcn就需要用a::fcn()才能访问,b的fcn将默认的覆盖a的fcn函数
happy的意思是不是说一定要处于指针或引用状态虚函数的性质才能体现出来?
public:
vitual int fcn();
};
class b:public a
{
int fcn(int);
};
加上virtual后,两个fcn函数就可以像在同一个作用域内提供操作,如果没有virtual的话,在a的fcn就需要用a::fcn()才能访问,b的fcn将默认的覆盖a的fcn函数
happy的意思是不是说一定要处于指针或引用状态虚函数的性质才能体现出来?
你理解的差不多,虚函数就是多态,知道什么是多态就好了。
程序执行时,根据实际内存的值来判断是什么对象,而非是代码本身。
也不一定是指针和引用。
这方面,你看看动态联编的东西就懂了!!动态联编!
怎么说呢,举个例子吧
a a1;
b b1;
a *p = &a1;
p->fcn(); //调用a这个类的fcn
p = &b1;
b->fcn(); //如果fcn是虚函数,调用b这个类的fcn,如果不是虚函数,那将调用a这个类的虚函数
虚函数是不继承的~
所以和你说的一样~
怎么回答啊 补充的问题 虽然学过 还是不知道 虚函数是这样用的没错 但应该可以直接使用对象名来访问吧