社区
C++ 语言
帖子详情
纯虚函数不能为内联?
nwpulipeng
2006-10-04 04:07:51
看到《C++编程思想》第二版上说,纯虚函数不能为内联,可是我在VC6.0上测试,纯虚函数可以为内联,甚至在函数前面加inline都没有问题:
inline virtual void f() const = 0 {cout<<"pure virtual function called!"<<endl;};
是书上说错了吗,还是我哪里写得不对?不知道关于这个问题,哪位达人知晓?
...全文
232
6
打赏
收藏
纯虚函数不能为内联?
看到《C++编程思想》第二版上说,纯虚函数不能为内联,可是我在VC6.0上测试,纯虚函数可以为内联,甚至在函数前面加inline都没有问题: inline virtual void f() const = 0 {cout<<"pure virtual function called!"<<endl;}; 是书上说错了吗,还是我哪里写得不对?不知道关于这个问题,哪位达人知晓?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
thomasnew
2006-10-04
打赏
举报
回复
inline 只是一个请求建议,而不是指令。
vc6.0 只是一个编译器,不代表c++标准。
nwpulipeng
2006-10-04
打赏
举报
回复
揭帖。。。
nwpulipeng
2006-10-04
打赏
举报
回复
嗯,就是与编译器有关。。。。。
VC遇到这种情况采取鸵鸟政策,用gcc好像就会报错,呵呵。
lw1a2
2006-10-04
打赏
举报
回复
忘了是谁举例说的了,内联是这样的:
内联函数对编译器说:您好,我叫f(),我想把实现成内联的。您看,在您方便的时候,能把我弄成内联的吗?
:)
虚函数和内联函数在使用目的上是矛盾的,前者是在运行时刻决定调用哪个函数,后者是在编译时候要知道调用哪个函数
sinall
2006-10-04
打赏
举报
回复
同意楼上。
补充:
所谓inline,类似于宏替换。这里就没有函数地址的说法。
而纯虚函数是通过vtable来访问的。vtable中记录了该函数的地址。
很明显,以上两条相矛盾。
SammyLan
2006-10-04
打赏
举报
回复
你这样写了它也不会帮你内联的
要记住,inline是一个建议,而非强制行为
TechCPP:【C ++面试&C ++学习指南】这里整理了C ++精确研发工程师面试和工作必备的知识点
如下是C ++后台开发技术路线以及知识点,这里有很多细节,还需要不断完善。欢迎大家通过或者加我与我交流,一起成长一起进步! 以下没有连接的内容就是还没有写,笔者正在拼命赶草稿...。 C ++ primer B站视频讲解 (玩命更新中...) 编程语言C ++ C ++:易失性静态const extern等关键字 常用库函数实现 malloc,strcpy,strcmp的实现,常用库函数实现,哪些库函数属于高危函数 STL原理及实现 虚函数的作用和实现原理,什么是虚函数,有什么作用?
纯虚函数
,为什么需要
纯虚函数
? 为什么需要虚析构函数,什么时候不需要?父类的析构函数为什么要定义为虚函数?
内联
函数,构造函数,静态成员函数可以是虚函数吗? 构造函数中可以调用虚函数吗? 为什么需要虚继承?虚继承实现原理解析, C ++内存分配机制 指针 迭代器与普通指针有什么区别 C ++的智能指针及其
最新C++全套视频教程及实战开发
教程目录复制下面的链接打开后即可查看: https://www.jianshu.com/p/e76fe0754a2c 主要学习内容包含: 1、熟悉面向对象的语言概述 2、熟练掌握c++语言的基本知识和类与对象及其高级应用 3、作用域运算符、
内联
函数、强制类型转换 4、new、delete内存管理 5、对象成员、成员函数 6、构造函数、析构函数、拷贝构造函数、函数重载 7、 对象数组、this指针、 枚举 8、静态成员、静态成员函数 9、对象成员 10、友元 11、 封装、继承、多继承、多态 12、虚函数、
纯虚函数
、抽象类、虚析构函数等
《C经典面试》编译链接、指针、内存bug、函数、其它
课程内容: 1.编译链接:编译链接过程、预...函数:自定义函数、
内联
函数、回调函数、变参函数、递归函数、库函数等 5.其它:自动类型转换、数据溢出、结构体对齐、volatile、typedef、assert宏、逗号表达式、++/--等
Visual C++开发经验技巧宝典(第1章)
第1章 语言基础 1 1.1 基础语句 2 0001 注释的使用方法及注意事项 2 0002 使用汇编语言 2 0003 如何使用
内联
函数 2 0004 如何使用#define自定义宏 3 0005 使用goto语句进行无条件跳转 3 0006 while循环转为for循环 3 0007 do while循环的分析与使用 4 0008 利用条件运算符简化代码 4 0009 使用exit函数退出进程 5 0010 函数exit的注意事项 5 0011 调试无限循环 5 0012 控制台输入/输出 5 0013 delete与delete []的差别 6 0014 符号#、##、#@的用法 6 0015 将某个地址转换为指针 6 0016 常用内存分配及释放函数 6 0017 生成小于100的随机数 7 1.2 类型与变量 7 0018 静态变量的定义及应用 7 0019 使用全局变量的注意事项 7 0020 如何使用全局对象 7 0021 变量作用范围 8 0022 创建自己的变量类型 8 0023 如何声明同样类型的多个变量 8 0024 extern关键字的使用 9 0025 const关键字的应用范围 9 0026 去除const属性的转换 9 0027 使用enum定义类型 10 0028 定义只有零个元素的数组 11 0029 利用零进行初始化的对象 11 0030 初始化数组的简单方法 11 0031 结构体的字节对齐 11 1.3 模板与函数 12 0032 成员函数的模板不可以是虚函数 12 0033 利用递归函数计算阶乘 12 0034 函数模板的应用 13 0035 使用指针数组 13 0036 函数指针数组的应用 13 0037 函数重载的注意事项 14 0038 使用typename关键字 14 1.4 引用 14 0039 使函数返回多个值 14 0040 如何使用引用 15 0041 如何应用值传递参数 15 0042 赋值与初始化的区别 16 0043 如何初始化左值 16 1.5 名称空间 16 0044 为什么使用命名空间 16 0045 如何定义及访问命名空间 16 0046 利用命名空间解决命名冲突 17 0047 名称空间简单应用 18 0048 使用:: 运算符调用全局函数 18 0049 :: 使用命名空间的注意事项 18 1.6 继承 19 0050 两个类互为成员的声明 19 0051 为什么要避免直接存取数据成员 19 0052 避免使用memset初始化对象 19 0053 C++类中成员初始化的顺序 19 0054 基类的析构函数应该是虚方法 20 0055 访问限定符分析 21 0056 访问其他类的私有成员函数 21 0057 如何定义友员类 22 1.7 多态 23 0058
纯虚函数
的使用 23 0059 覆盖基类的成员函数 23 0060 如何应用多重继承 24 0061 如何利用虚函数实现动态绑定 25 0062 如何利用抽象类进行数据封装 25 0063 数据类型与类对象大小的区别 26 0064 实现类的强制转换 26 1.8 高级函数 27 0065 如何重载操作符 27 0066 如何定义重载函数 28 0067 默认构造函数 28 0068 复制构造函数 28 0069 this指针分析 29 0070 如何用非静态的类成员函数作为线程函数 29 0071 如何在常量函数中修改数据成员 30 1.9 STL模板库 30 0072 为什么在程序中广泛使用STL 30 0073 如何在STL中使用容器 30 0074 STL算法的优点 31 0075 如何设计和使用STL迭代器 31 0076 使用STL需要包含哪些头文件 32 0077 STL简单应用 32 1.10 C++.NET语法 33 0078 在C++.NET中如何判断空指针 33 0079 C++与C++.NET中
纯虚函数
的区别 33 0080 C++.NET中数据类型转换的方法 33 0081 在C++.NET中如何定义具有输出参数的函数 33 0082 C++.NET中如何实现方法的默认参数 33 0083 在C++.NET中如何获取系统信息 34
c语言中虚函数和
纯虚函数
,虚函数和
纯虚函数
的区别是什么?
虚函数和
纯虚函数
的区别:1、
纯虚函数
只有定义,没有实现;而虚函数既有定义,也有实现的代码。2、包含
纯虚函数
的类
不能
定义其对象,而包含虚函数的则可以。相关推荐:《C++视频教程》虚函数(impure virtual)C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。子类可以重写父类的虚函数实现子类的特殊化。如下就是一个父类中的虚函数:class A{publi...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章