哪些函数不能为虚函数_普通函数可以作为虚函数吗-程序员宅基地

技术标签: 编译器  c  function  研发技术类  

 

常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。

1.为什么C++不支持普通函数为虚函数?

普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。

2.为什么C++不支持构造函数为虚函数?

这个原因很简单,主要是从语义上考虑,所以不支持。因为构造函数本来就是为了明确初始化对象成员才产生的,然而virtual function主要是为了再不完全了解细节的情况下也能正确处理对象。另外,virtual函数是在不同类型的对象产生不同的动作,现在对象还没有产生,如何使用virtual函数来完成你想完成的动作。(这不就是典型的悖论)

3.为什么C++不支持内联成员函数为虚函数?

其实很简单,那内联函数就是为了在代码中直接展开,减少函数调用花费的代价,虚函数是为了在继承后对象能够准确的执行自己的动作,这是不可能统一的。(再说了,inline函数在编译时被展开,虚函数在运行时才能动态的邦定函数

4.为什么C++不支持静态成员函数为虚函数?

这也很简单,静态成员函数对于每个类来说只有一份代码,所有的对象都共享这一份代码,他不归某个具体对象所有,所以他也没有要动态邦定的必要性。

5.为什么C++不支持友元函数为虚函数?

因为C++不支持友元函数的继承,对于没有继承特性的函数没有虚函数的说法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xuejianing/article/details/6886645

智能推荐

celeba数据集_视觉工具包torchvision重大更新:支持分割模型、检测模型,还有许多数据集...-程序员宅基地

文章浏览阅读235次。栗子 发自 凹非寺量子位 出品 | 公众号 QbitAIPyTorch宣布了视觉工具包torchvision的重大更新。终于来到torchvision 0.3了。这次,工具包里增加了许多新模型:做语义分割的,做目标检测的,做实例分割的……也增加了许多数据集,比如ImageNet,CelebA,Caltech 101等等等等。另外,torchvision还有了不少视觉专用的C++/Cuda..._torchvision里面有哪些分类模型

spring-cloud-eureka服务发现注册中心及spring-cloud微服务_dexx-collections-0.2-程序员宅基地

文章浏览阅读9.6k次。spring-cloud 使用eureka作为服务注册与发现中心,与zookeeper不同,eureka没有提供可直接运行的压缩文件,需要我们手动搭建eureka服务器。spring-cloud 与dubbo区别参考https://www.cnblogs.com/aspirant/p/9089146.htmleureka服务器的搭建很简单与一般的spring-boot应用相同,只是启动类需要..._dexx-collections-0.2

【HAL库系列】1.STM32CubeIDE下载与配置-程序员宅基地

文章浏览阅读6.1k次。这篇文章主要是说下STM32CubeIDE下载与配置,相对于keil MDK而言,STM32CubeIDE是免费且开源的,所以建议直接去官网下载就好(但是由于墙的缘故,可能有些同学无法下载,所以我也会更新百度网盘,需要的可以自取)1.下载官网下载地址:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tool_stm32cubeide下载

django家政服务管理系统(程序+开题报告)-程序员宅基地

文章浏览阅读905次,点赞22次,收藏21次。通过对家政服务行业的深入分析,结合现代信息技术手段,构建一个集服务类型、服务人员、用户、服务项目、预约记录、取消记录、服务进度、服务评价、信息提醒等功能于一体的综合性家政服务管理平台。通过该系统的应用,旨在提高家政服务行业的服务质量和效率,满足广大雇主对家政服务的需求,促进家政服务行业的健康发展。适用于构建高性能、维护方便的Web应用。[7] 张华, 翟新军, 胥勇, 李伟强, 杨健, 赵嘉伟, 张涛. Python在集控大数据应用的研究[J]. 价值工程, 2023, 42 (21): 84-86.

欧拉函数_欧拉函数ψ(6)-程序员宅基地

文章浏览阅读419次。欧拉函数在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’so totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。定 义小于n的数中与_欧拉函数ψ(6)

POJ2154 Color(Polya定理)-程序员宅基地

文章浏览阅读38次。Time Limit:2000MSMemory Limit:65536KTotal Submissions:11654Accepted:3756DescriptionBeads of N colors are connected together into a circular necklace of N beads ...

随便推点

linux设备模型之kobject与kset_linux kset和kobject-程序员宅基地

文章浏览阅读404次。文章目录sysfs文件系统kobject在 kobject 和 kset 之前,先介绍与它们相关联的 sysfs 文件系统sysfs文件系统linux2.6内核引入了sysfs文件系统,sysfs被看成是与proc同类别的文件系统。Sysfs把连接在系统上的设备和总线组织成分级的文件,使其从用户空间可以访问到。sysfs被加载到/sys/目录下,它的子目录包括:Block:在系统中发现..._linux kset和kobject

STC8H1K08 - GPIO 按键检测-程序员宅基地

文章浏览阅读6.4k次,点赞6次,收藏27次。文章目录不使用硬件或软件消抖的按键检测原理图Keil 工程结构源文件参考STC8H 系列单片机所有的 I/O 口均有 4 种工作模式:准双向口/弱上拉(标准 8051 输出口模式)、推挽输出/强上拉、高阻输入(电流既不能流入也不能流出)、开漏输出。注意:除 P3.0 和 P3.1 外,其余所有 I/O 口上电后的状态均为高阻输入状态,用户在使用 I/O 口之前必须先设置 I/O 模式。不使用硬件或软件消抖的按键检测原理图使用 3V 电源为单片机的供电;端口 P1.2 连接发光二极管 _stc8h1k08

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(一)—— 单个神经元-程序员宅基地

文章浏览阅读984次,点赞23次,收藏20次。咱们在这篇文章中将了解与练习深度学习的构建模块--线性单元。利用这个系列的文章,您即将学习到构建自己的深度神经网络所需的一切。通过使用Keras和Tensorflow,您将学习以下内容:× 创建一个全连接的神经网络架构。× 将神经网络应用于两个经典的机器学习问题:回归和分类。× 使用随机梯度下降训练神经网络。× 通过使用dropout、批归一化(batch normalization)和其他技术来提高性能。咱们这个系列文章将通过完整的实例向您介绍这些主题,然后在练习中您将更深入地探索这些主题。

【总结】Session监听类HttpSessionListener介绍及在listener里取得request-程序员宅基地

文章浏览阅读523次。servlet-api.jar中提供了监听类[b]HttpSessionListener[/b],主要方法有两个,sessionCreated、sessionDestroyed,根据方法名就能明白是监听session的创建和销毁。以下是示例:[code="java"]package com.test;import javax.servlet.http.HttpSession;..._如何在监听器内获取到httprequest

关于 NPOI 导出的 Excel 出现“部分内容有问题” 的解决方法-程序员宅基地

文章浏览阅读8.9k次,点赞3次,收藏6次。近期发现使用 NPOI导出的 Excel文件,有部分用户反映在打开时报错,测试了一下,发现在低版本的 Office中(2003版,配合2007格式兼容包)打开正常,但在高版本 Office中,会报以下错误:发现“XXX.xlsx”中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。点击 “否”就不打开文件了,点击 “是”之后可以打开文件,出..._npoi 导出的 excel 发现 “xx.xlsx”中的部分内容有问题