1
#include <functional>
#include <iostream>
struct Foo {
Foo(int num) : num_(num) {}
void print_add(int i) const { std::cout << num_+i << '\n'; }
int get_num(int i) { return num_;}
void set_num(int i) { num_ = i;}
int num_;
};
int main() {
std::function<int(const Foo *, int)> f_get_num;
f_get_num = &Foo::get_num;
return 0;
}
이렇게하면 f_get_num = &Foo::get_num
에 error: invalid conversion from ‘const Foo*’ to ‘Foo*’ [-fpermissive]
오류가 발생합니다. Foo::get_num
유형은 int (Foo:: *fp)(int)
입니다. 아무도 그것을 설명 할 수 있습니까? 감사.std const 멤버의 함수 래퍼
왜'get_num'에 'int (const Foo *, int)'라는 서명이 있다고 생각합니까? – NathanOliver