美文网首页
C++ 中不能声明为虚函数的函数有哪些?

C++ 中不能声明为虚函数的函数有哪些?

作者: 一只肥豚鼠 | 来源:发表于2019-02-15 19:18 被阅读1次

普通函数

普通函数(非成员函数)只能被overload,不能被override,而且编译器会在编译时绑定函数。
多态的运行期行为体现在虚函数上,虚函数通过继承方式来体现出多态作用,顶层函数不属于成员函数,是不能被继承的

构造函数

因为构造函数本来就是为了明确初始化对象成员才产生的,然而virtual function主要是为了在不完全了解细节的情况下也能正确处理对象。另外,virtual函数是在不同类型的对象产生不同的动作,现在对象还没有产生,如何使用virtual函数来完成你想完成的动作。

内联成员函数

内联函数就是为了在代码中直接展开,减少函数调用花费的代价,虚函数是为了在继承后对象能够准确的执行自己的动作,这是不可能统一的。

静态成员函数

静态成员函数对于每个类来说只有一份代码,所有的对象都共享这一份代码,他也没有要动态邦定的必要性。不能被继承,只属于该类。

友元函数

C++不支持友元函数的继承,对于没有继承特性的函数没有虚函数的说法。友元函数不属于类的成员函数,不能被继承。

相关文章

  • 4.2C++虚析构函数

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

  • C++ 中不能声明为虚函数的函数有哪些?

    普通函数 普通函数(非成员函数)只能被overload,不能被override,而且编译器会在编译时绑定函数。多态...

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

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

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

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

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

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

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

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

  • 虚函数

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

  • c++面试问题总结

    1.c++面试问题总结:(1)空类的大小,仅含有虚函数类的大小(2)析构函数声明为虚函数的作用(3)C++多态的实...

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

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

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

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

网友评论

      本文标题:C++ 中不能声明为虚函数的函数有哪些?

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