美文网首页
不可以被声明为虚函数的函数

不可以被声明为虚函数的函数

作者: Temple_Li | 来源:发表于2017-09-12 10:51 被阅读0次

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

1、顶层函数:多态的运行期行为体现在虚函数上,虚函数通过继承方式来体现出多态作用,顶层函数不属于成员函数,是不能被继承的。

2、构造函数:(1)构造函数不能被继承,因而不能声明为virtual函数。

(2)构造函数一般是用来初始化对象,只有在一个对象生成之后,才能发挥多态的作用,如果将构造函数声明为virtual函数,则表现为在对象还没有生成的情况下就使用了多态机制,因而是行不通的,

3、static函数:不能被继承,只属于该类。

4、友元函数:友元函数不属于类的成员函数,不能被继承。

5、inline函数:inline函数和virtual函数有着本质的区别,inline函数是在程序被编译时就展开,在函数调用处用整个函数体去替换,而virtual函数是在运行期才能够确定如何去调用的,因而inline函数体现的是一种编译期机制,virtual函数体现的是一种运行期机制。此外,一切virtual函数都不可能是inline函数。

相关文章

  • C++中,构造函数不能设为虚函数,基类析构函数应该设为虚函数

    构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用...

  • 不可以被声明为虚函数的函数

    不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。 1、顶层函数:多态...

  • 2018-01-28 高级多态(一)

    纯虚函数 纯虚函数是必须在派生类中重写的虚函数。通过将虚函数初始化为0来将其声明为纯虚的。派生类重写所有虚函数,否...

  • C++学习笔记(六)多态(下)

    1、静态成员函数 只有非静态成员函数才可以成为虚函数,而静态成员函数不能声明为虚函数。 例1: 在本例中定义了一个...

  • C/C++知识点分享(20)

    1.、为什么构造函数不能声明为虚函数? 解析:因为虚函数采用的是虚调用的方法,虚调用是指允许在只知道部分信息的情况...

  • 父类析构函数和普通函数声明为纯虚或虚函数时调用子类方法

    [TOC] 父类析构函数和普通函数声明为纯虚或虚函数时调用子类方法 例子如代码所示 B 是 A 子类 A *a =...

  • 4.4C++纯虚函数和抽象类

    在C++中,可以将成员函数声明为纯虚函数,语法格式为: virtual 函数返回类型 函数名 (函数参数) = 0...

  • 虚函数

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

  • 4.2C++虚析构函数

    为什么构造函数不能声明虚函数 在C++中,构造函数用于在创建对象时进行初始化工作,不能声明为虚函数。因为在执行构造...

  • 深入了解C++虚函数

    一、认识虚函数 虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中...

网友评论

      本文标题:不可以被声明为虚函数的函数

      本文链接:https://www.haomeiwen.com/subject/ujfcsxtx.html