C++中的虚函数问题 同意楼上的。可以定义成protected,派生类只要是public或是protected继承,都可以使用。如果定义成private,应该是不行吧。(没试过)虚函数的封装性受基类中声明的影响。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义为protected 的,派生类的对象可以直接使用。(当然也可以重载)。定义为private 的,派生类的对象不可以直接使用,只能重载。 当然可以了.可以在函数中调用!#include <stdio.h>#include <math.h>#include <conio.h>#include <iostream.h>class Base{protected: virtual void Display() { cout<<"Display in Base"<<endl; }public: void Fun() { Display(); }}b;class Sub:public Base{protected: virtual void Display() { cout<<"Display in Sub"<<endl; }}s;void main(void){ Base *pb; pb=&b; pb->Fun(); pb=&s; pb->Fun(); getch();} private 不可以~~~~ protected 可以~~~~ private 就没有虚函数的意义了啊!protected到是可以! 可以调用, 通过scope(翻译为 域作用符) protected和private都可以,但一般来说(按照惯例)是有区别的,protected的virtual函数表示我已经实现了一个实现,你可以使用,并且可以不用重新实现,private表示我没有实现,你必须实现它 cxImage 在vc 2012的配置问题 如何让服务程序在系统启动和切换用户时拉起别的程序 关于驱动预安装的问题 vc++\mfc中字符串转换整数的问题 请问如何在CEditView中显示字符串? 怎么这么简单的程序都有错误 求教:如何生成安全的随机数???? 为什么这样给ListBox添加消息就不行???? 我在对话框上作了一个LISTCTRL 我希望按下BUTTON后,刷新LISTCTRL中的内容,用什么方法呢?急~~~~~~~~~~~~~ 明天候sir在海淀图书城和大家见面,还有谁要去? 请教。怎样刷新整个屏幕。 菜鸟问题:帮我解释一下active x和com的区别
定义为private 的,派生类的对象不可以直接使用,只能重载。
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
class Base
{
protected:
virtual void Display()
{
cout<<"Display in Base"<<endl;
}
public:
void Fun()
{
Display();
}
}b;class Sub:public Base
{
protected:
virtual void Display()
{
cout<<"Display in Sub"<<endl;
}
}s;
void main(void)
{
Base *pb;
pb=&b;
pb->Fun();
pb=&s;
pb->Fun();
getch();
}