如何声明恒定的方法指针

Jon*_*Mee 4 c++ member-function-pointers function-pointers constants c++03

1 ST关断这不是关于如何指向一个恒定方法问题。我想知道如何使我的方法指针恒定。

鉴于:

struct foo {
    void func1();
    void func2();
};
Run Code Online (Sandbox Code Playgroud)

我可以使用构建方法指针,void (foo::*bar)() = &foo::func1 但是以后可以使用,bar = &foo.func2我想避免这种情况。

我可以轻松地做到这一点const auto bar = &foo::func1,但是我不确定在之前如何做到这一点。

ter*_*kuh 7

您需要做的就是在const后面添加关键字*,如下所示:

void(foo::*const _pointer)() = &foo::func1;
Run Code Online (Sandbox Code Playgroud)