不能声明为虚函数的函数

xiaoxiao2021-02-28  15

虚函数的定义:在函数声明前加上virtual即虚函数,虚函数必须是非静态的成员函数,没有继承特性的函数不能为虚函数。

虚函数的作用:虚函数是为了实现动态联编,也就是多态。基类中定义的虚函数可以在子类中重写(即具有相同特征标),实现一个接口的多种形态的变成。

在动态联编中,只能通过基类指针或基类对象来调用虚函数。虚函数还有一个作用就是开配动态内存时可以把基类的析构函数定义为虚的,

这样使得开辟的堆空间被正确的释放,否则的话只会调用基类的析构函数,不会调用子类的。

不能被声明为虚函数的函数:

1.非成员函数:非成员函数只能重载而不能重写。

2.构造函数:构造函数是在创建对象的时候自动调用的,不可能通过父类指针或引用去调用,因此规定构造函数不能是虚函数。

3.静态成员函数:因为静态成员只拷贝一份,所有代码共享,所以没有必要定义为虚函数。

4.内联函数:内联函数是编译的时候进行代码替换,而虚函数是在运行的时候实现的。

5.友元函数:友元函数不是类的成员函数,因此不能被继承。

转载请注明原文地址: https://www.6miu.com/read-850014.html

最新回复(0)