博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 虚函数的定义
阅读量:4158 次
发布时间:2019-05-26

本文共 683 字,大约阅读时间需要 2 分钟。



本文转自:

需要实例化类的虚函数必须有定义,而仅仅定义带有虚函数的类且虚函数没有实现,该类编译是可以通过的!

     纯虚函数出现在接口类中,并赋值为0,不要为该函数分配函数地址,从而阻止类的实例化!纯虚函数是没有定义的,如果实现了也不是纯虚函数啦!

     一般的成员函数可以只有声明,前提是在应用中不能调用该函数,否则会因找不到定义产生连接错误!

 

     实例化类的虚函数必须有定义,原因如下:有虚函数作为成员函数的类, 它的实例化-对象, 在运行过程分配到的内存不止是它的成员数据, 还有一个指向该类虚函数表(vtable)的指针, 虚函数表中的每个数据项都是一个虚函数的入口地址; 如果一个对象的虚函数只有声明而没有实现, 就会出现这个虚函数表找不到本应作为其数据项之一的某函数的入口地址, 虚函数表在运行前不能装载完成, 所以产生连接错误!

★★ http://www.ok2002.com/cc/cc/v.asp?r=a2273562170518

//C++ 纯虚函数接口如何定义?使用时应注意什么?/*--定义纯虚函数接口:virtual void f()=0;  //只是提供接口,实现留给继承类使用时应注意:子类必须要实现该函数--*/#include
using namespace std;class A{public: virtual void func()=0;//定义纯虚函数接口};class B:public A{public: virtual void func()//子类必须要实现该函数 { cout<<"ok2002.com"<

转载地址:http://wxuxi.baihongyu.com/

你可能感兴趣的文章
素数对--腾讯2017校招编程
查看>>
JAVA集合--ArrayList实现原理
查看>>
synchronized与Lock
查看>>
数据库索引
查看>>
实现包含min,max,push,pop函数的栈
查看>>
实验2-6 字符型数据的输入输出
查看>>
实验3-5 编程初步
查看>>
实验4-1 逻辑量的编码和关系操作符
查看>>
实验5-2 for循环结构
查看>>
实验5-3 break语句和continue语句
查看>>
实验5-4 循环的嵌套
查看>>
实验5-5 循环的合并
查看>>
实验5-6 do-while循环结构
查看>>
实验5-7 程序调试入门
查看>>
实验5-8 综合练习
查看>>
第2章实验补充C语言中如何计算补码
查看>>
深入入门正则表达式(java) - 命名捕获
查看>>
使用bash解析xml
查看>>
android系统提供的常用命令行工具
查看>>
【Python基础1】变量和字符串定义
查看>>