gpt4 book ai didi

c++ - 如何在不使用类名作为作用域的情况下获取类中成员函数的地址?

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:16 24 4
gpt4 key购买 nike

我想知道是否可以在不使用作用域的类名的情况下获取类中成员函数的地址。

在下面的例子中,在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com