C++的“虚”应用

news/2024/5/20 3:50:03 标签: 内联函数, 虚++

纯虚函数

关于什么是C++的纯虚函数,这里不在累赘阐述,可以参见百度。一句话说其结构就是virtual fun()=0,纯虚函数的作用主要是实现更抽象化的接口。可以说是一种提高编程效率的机制,他的目的是告诉用户这样的类拥有的接口行为,但是其不会具体实现,由继承他的子类派生类实现。相当于这样的接口在具体的子类中表现的行为是不一样的。注意有纯虚函数的类成为抽象类,不可以实例化!!

虚函数

基类指针调用子类同名方法的应用,只要在方法前面加上virtual!
虚函数主要是应用在多态继承,直接在函数接口前面加上virtual,父类中加有virtual的函数,其派生类的同名函数将会继承的基础上并代替这样的函数接口,因此当其子类实例化时调用的接口将会是子类里的同名函数方法,这很明显,但是一般当不这么用,引入虚函数的主要作用是实现多态,使用迟联编技术,当其基类指针指向子类对象时候,此时基类调用的虚方法就是子类里面的方法,注意注意!要跟覆盖有区别,可以说覆盖是子类和基类是没有什么任何关系的,不需要在基类的同名方法前面加virtual,派生类是在继承的基础上直接覆盖同名方法,基类指针即使指向子类也无法调用子类的方法,只能是基类里面的接口。

虚继承

虚继承主要解决是多继承导致的多份重复,特别是菱形继承,势必导致基类重复备份。最好的解决方法就是在继承的时候加上virtual,一种虚继承机制。
公式 class b: virtual public a
这里写图片描述


http://www.niftyadmin.cn/n/1233885.html

相关文章

1w存银行一年多少利息_每年拿出1万元存在银行,5年之后本金和利息一共是多少?...

好消息!8月一开始就告别了最让大家头疼的——水逆!饱受其害而过得心慌慌的小伙伴,可以开始准备让悬着的心、吊着的胆“软着陆”了。而8月值得一提的好消息还有:木星将顺行在射手座,希望就像是风雨过后的彩虹&#xff0…

提高codeing运行时间效率

使用现有著名高效算法通过内联inline增加代码量来节省运行时间函数采用返回引用而不是返回值,因为返回值需要高昂的拷贝开销减少空闲存储空间(new和malloc申请内存)和堆栈空间使用尽可能快地释放空闲资源小心处理static静态对象,使…

keras.optimizers优化器中文文档

优化器optimizers 优化器是编译Keras模型必要的两个参数之一 model Sequential() model.add(Dense(64, inituniform, input_dim10)) model.add(Activation(tanh)) model.add(Activation(softmax))sgd SGD(lr0.01, decay1e-6, momentum0.9, nesterovTrue) model.compile(los…

matlab判断double_生成对抗网络(GAN)及其MATLAB实现

本文讲解生成对抗网络的相关知识及其MATLAB实现。1)GAN的初步理解GAN的思想是是一种二人博弈思想:博弈双方的利益之和是一个常数。比如两个人掰手腕,假设总空间是一定的。你的力气大一点,那你就得到的空间多一点,我得到的空间就少…

程序错误类型及其处理

程序在设计调试甚至运行都难免出现错误,我们要做的是检测错误。 程序库错误 指的是程序库实现错误,当然,程序库的提供者在程序库发布之前,肯定想尽可能多地检测和纠正错误,但是任何比较大的程序库在发布的时候&#…

lisp 焊接符号标注_机械制图焊缝标注方法!太全了,收藏了

原标题:机械制图焊缝标注方法!太全了,收藏了1、焊缝标注方法图样上焊缝有两种表示方法,即符号法和图示法。焊缝标注以符号标注法为主,在必要时允许辅以图示法。比如用连续或断续的粗线表示连续或断续焊缝;在…

程序冲突及其解决

描述 对于两部分软件,如果它们不能在同一个程序里很容易地用在一起,那么我们就称这两部分软件是冲突的。可重用代码应该尽可能地避免这种冲突。程序库使用的名字可能会和其他程序库的名字发生冲突,这些冲突包括全局名称,宏名称和…

od send断点 下_二进制安全之栈溢出(下)

栈劫持整形溢出实验调试程序一 :rop链 & _libc_csu_initROPIDA静态分析int __cdecl main(int argc, const char **argv, const char **envp){ vulnerable_function(*(_QWORD *)&argc, argv, envp); return write(1, "Hello, World!", 0xEuLL);}…