问:一个指向类对象的指针与一个指向整数的指针区别是什么?
答:
以内存需求的观点来说,没有什么不同。二者均需要足够一个机器字的内存来放置指针。
指向不同类型的各指针之间的真正差异在:其所寻址出来的object类型不同。即:编译器会根据“指针类型”来解释某个特定地址中的内存内容及其大小。
如,指向类对象的指针---其所指内存内容为对象,大小为该对象的大小(成员变量,虚函数表指针);
指向整数的指针------其所指内存内容为整数,大小为整型大小,若为int型,则通常为一个机器字长(4B).
ps:
试问:类型为void*类型的指针将是编译器解释多大的地址空间?
答:不确定!!!
所以,一个类型为void*的指针只能够含有一个地址,而不能通过它操作所指object的缘故。
参考资料:《C++对象模型》