网上室内设计师培训,南京百度搜索排名优化,国外html模板网站,企业网站营销的成功案例我们知道一个函数的函数名就是这个函数的地址#xff0c;那么我们使用类成员函数的地址时#xff0c;为什么还要在前面加上取地址符号
原因如下#xff1a; 成员函数指针类型是一种特殊的指针类型#xff0c;用于指向类的成员函数。在 C 中#xff0c;对于非静态成员…我们知道一个函数的函数名就是这个函数的地址那么我们使用类成员函数的地址时为什么还要在前面加上取地址符号
原因如下 成员函数指针类型是一种特殊的指针类型用于指向类的成员函数。在 C 中对于非静态成员函数其地址不同于普通函数的地址因为它们需要一个对象来调用。因此成员函数指针类型是一种专门用于表示成员函数地址的指针类型。
成员函数指针类型的语法比较复杂它包含了类的类型信息以及函数的参数列表和返回类型等信息。在 C 中成员函数指针的类型由类类型和函数签名决定。
以下是成员函数指针类型的一般形式
return_type (class_name::*)(parameter_types...)其中return_type 是成员函数的返回类型class_name 是类名parameter_types... 是成员函数的参数列表。
例如对于一个名为 MyClass 的类拥有一个成员函数 myfun其返回类型为 void没有参数那么该成员函数指针的类型就是
void (MyClass::*)()成员函数指针类型可以用来声明变量指向相应的成员函数并且可以通过变量来调用相应的成员函数。需要注意的是使用成员函数指针时需要提供一个对象来调用相应的成员函数。
所以在你给 比如 std::thread 传递成员函数时需要使用对象的引用或指针并且在成员函数前面加上 符号以获取成员函数的地址。