首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请解释一下((A*)0)->b()什么意思,该怎么解决

2012-04-06 
请解释一下((A*)0)-b()什么意思((A*)0)- b()是什么意思?其中A为一个类,b为类A的一个成员函数,这句话的意

请解释一下((A*)0)->b()什么意思
((A*)0)-> b()是什么意思?其中A为一个类,b为类A的一个成员函数,这句话的意思是不是把内存地址0转换成A的指针?为何可以这样用?请解释仔细一些,谢谢!

[解决办法]
内存地址0转换成A的指针
只要 b不使用成员变量是可以的.
[解决办法]
如果b()没有访问到A的成员变量,可以这么用

具体可以看看这个贴子

http://community.csdn.net/Expert/topic/5526/5526033.xml?temp=.7869226
[解决办法]
其实这种用法就是调用他的函数而已
和全局函数一样
[解决办法]
0就当作是一个地址,前面家(A*)就是将0地址强制转换成A指针,再执行函数b

[解决办法]
本例是理解编译过程的做法。

例如,对于这段代码:

class A
{
......
R b(T); // R是返回值类型,T是b的参数类型,这里以单参数为例
......
};

编译后成为:
R A_b(A*, T); // 此处A_b指代编译器定义的内部名称

因此,((A*)0)-> b()的编译结果是 A_b(0)。
如果是
A a;
a.b();
则后一句就是A_b(&a) 。

热点排行