函数指针与取地址符

为什么给指向对象的函数成员的指针赋值要用&取址符呢? 


指针名=&类名::函数成员名

函数名不是代表首地址吗?还是此时还么有给函数分配地址还是什么的,表示搞不懂 求大神指导!!最好详细点,谢啦,好的一定采纳




最佳答案
 
    
函数名可以作为函数的地址,但这是有前提条件的,从函数到指针的隐式转换是函数名在表达式中的行为,这个转换仅在表达式中才会发生,这只是函数名众多性质中的一个,而非本质,函数名的本质是函数实体的代表。

对于C++,规定非静态成员函数的左值不可获得,因此非静态成员函数不存在隐式左值转换,即不存在像常规函数那样的从函数到指针的隐式转换,所以必须在非静态成员函数前使用&操作符才能获得地址。

最佳答案
函数名可以作为函数的地址,但这是有前提条件的,从函数到指针的隐式转换是函数名在表达式中的行为,这个转换仅在表达式中才会发生,这只是函数名众多性质中的一个,而非本质,函数名的本质是函数实体的代表。

对于C++,规定非静态成员函数的左值不可获得,因此非静态成员函数不存在隐式左值转换,即不存在像常规函数那样的从函数到指针的隐式转换,所以必须在非静态成员函数前使用&操作符才能获得地址。

猜你喜欢

转载自blog.csdn.net/qq_34352738/article/details/78936900