注意:虚函数应该在基类中声明,且不能 在派生类中重新定义。如果使用派生类层 次结构,必须在最高层上声明虚函数。虚 函数必须定义在它第一次被声明的类中。 在派生类中重新定义的虚函数必须和基类 中的虚函数有相同的参数个数和数据类型, 否则,编译器将认为重载虚函数。 人民邮电出版社 POSTS tEl OM PRE 动此映
注意:虚函数应该在基类中声明,且不能 在派生类中重新定义。如果使用派生类层 次结构,必须在最高层上声明虚函数。虚 函数必须定义在它第一次被声明的类中。 在派生类中重新定义的虚函数必须和基类 中的虚函数有相同的参数个数和数据类型, 否则,编译器将认为重载虚函数
10.1,2虚函数 纯虚函数只有一个函数声明,并没有具体 函数功能的实现。可通过给函数指定零值 进行声明。纯虚函数的定义格式为 virtual<函数类型><虚函数名称> (<参数列表>)=0 人民邮电出版社 POSTS tEl OM PRE 动此映
10.1.2 纯虚函数 纯虚函数只有一个函数声明,并没有具体 函数功能的实现。可通过给函数指定零值 进行声明。纯虚函数的定义格式为: virtual <函数类型><虚函数名称> (<参数列表>)=0
例如: virtual void getdata0=0 不能创建含有一个或多个纯虚函数的类对 象,因为如果将函数调用发送给纯虚方法 是不会有任何回应的。纯虚函数不可以直 接调用,也不可以被继承 人民邮电出版社 POSTS tEl OM PRE 动此映
例如: virtual void getdata() = 0; 不能创建含有一个或多个纯虚函数的类对 象,因为如果将函数调用发送给纯虚方法 是不会有任何回应的。纯虚函数不可以直 接调用,也不可以被继承
【例102】分析程序执行结果。 #i nclude iostream.h'n class a public: virtual void size=0 人民邮电出版社 POSTS tEl OM PRE 动此映
【例10.2】分析程序执行结果。 #include "iostream.h" class A { public: virtual void size()=0; };
class B: publIc private double x; public void size if(x>=0)cout<<x<<endl else cout<<-x<<endl: B(double xxx=Xx; 3 人民邮电出版 POSTS tEl OM PRE 点破此处放
class B:public A { private: double x; public: void size() { if(x>=0) cout<<x<<endl; else cout<<-x<<endl; } B(double xx){x=xx;} };