当前位置:  开发笔记 > 编程语言 > 正文

C++是否使用静态名称解析或动态名称解析?

如何解决《C++是否使用静态名称解析或动态名称解析?》经验,为你挑选了1个好方法。

我一直在阅读维基百科(名称解析WIKI)中的"名称解析",并且已经给出了C++使用"静态名称解析".如果这是真的那么我无法弄清楚C++如何在不使用动态名称解析的情况下设法提供"多态".

任何人都可以回答C++是否使用"静态名称解析"或"动态名称解析".如果它是静态的,你还可以解释C++如何提供多态性.



1> Nicol Bolas..:

维基百科对名称解析的定义是关于如何将标记解析为构造的名称(函数,类型名等).鉴于该定义,C++ 的名称解析是100%静态的.表示标识符的每个标记必须在编译时与特定实体相关联.

C++多态性实际上是在欺骗.编译器可以看到静态名称解析为使用virtual关键字定义的成员函数.如果编译器发现您正在调用此对象的对象是动态对象(即:指向该类型的指针/引用而不是该类型的值),则编译器会发出特殊代码来调用该函数.

此特殊代码不会更改它解析的名称.它改变的是最终被调用的函数.那不是动态命名; 那就是动态函数调度.名称在编译时解析; 该函数在运行时得到解析.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有