win*_*all 1 c++ virtual inline header function
在使用virtual关键字时,在.h文件中编写函数及其实现(隐式内联):
virtual void g(){cout<<"is Inline?"};
Run Code Online (Sandbox Code Playgroud)
虚函数是否无意义,因为函数是在.h中实现的?这被认为是内联的吗?
虚函数是否无意义,因为函数是在.h中实现的?
不,virtual
并且inline
是完全独立的概念.
virtual
表示根据调用的对象的动态类型,在运行时根据需要选择要调用的函数.
inline
意味着您可以在多个翻译单元中定义该功能,并且必须在使用它的任何翻译单元中定义该功能.这对于某些编译器来说是必要的,以允许函数内联,但不强制所有调用都被内联.特别是,通常不会内联虚拟调用(除非可以在编译时确定动态类型),因此virtual
这里肯定会保留其含义.
这被认为是内联的吗?
是的,但(如上所述)并不意味着将内联所有呼叫.
归档时间: |
|
查看次数: |
715 次 |
最近记录: |