我想知道是否可以在不使用作用域的类名的情况下获取类中成员函数的地址。
在下面的例子中,在 main 内部是获取地址的正常方式,但在 func2 内部,有没有不使用类名的方法。要求这样的原因是,如果将来我更改类名,我不必去里面更改。 例如:
Class A
{
void func1()
{
}
void func2()
{
/Address of func1/ = &func1; // something like this possible?
}
}
void main()
{
/Address of func1/ = &A::func1;
}
最佳答案
对于非static
成员函数,
&std::remove_reference_t<decltype(*this)>::func1
是一种方式。
对于static
函数,使用std::addressof
std::addressof(func1);
这依赖于 A::
是隐式的事实。
关于c++ - 如何在不使用类名作为作用域的情况下获取类中成员函数的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53722560/