C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 虚拟成员函数的指针是否具有可比性?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我读了 an article

我正在努力理解C 11,§5.10.

在§5.10/ 1中它说

在§5.10/ 2中它说

现在虑以下测试程序.

#include <Cassert>

class IsomeClass
{
public:
   virtual ~IsomeClass() {}

   virtual void a() = 0;
   virtual void b() = 0;
};

int main()
{
   typedef void(IsomeClass::*MemberPtr)();

   MemberPtr mp = &IsomeClass::a;

   assert( mp == &IsomeClass::a );
   assert( mp != &IsomeClass::b );

   return 0;
}

根据标准,断言是真的还是未指定的?

解决方法

我认为指向成员的一般指针是对象地址的转换.在指向虚方法的情况下,我认为细节取决于实现.在一般情况下,我认为这样做是个坏主意,但是如果指针在asignation期间被解析为正确的覆盖,它必须作为成员函数的标准指针,并且比较是移位比较和方法签名比较.检查reinterpret_cast以查看发生的情况.

大佬总结

以上是大佬教程为你收集整理的c – 虚拟成员函数的指针是否具有可比性?全部内容,希望文章能够帮你解决c – 虚拟成员函数的指针是否具有可比性?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。