怎样用同一个指针指向不同类型的数据?

shu 2000-06-16 01:08:00
我自定义了几个类,想用一个指针指向某个类的对象,在某种情况下再用同一个指针
指向另一个类的对象,有这样的指针吗?该如何实现?
...全文
489 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WHQ 2000-06-16
  • 打赏
  • 举报
回复
void*可指向任何类型的地址
halfdream 2000-06-16
  • 打赏
  • 举报
回复
很简单呀。
定义一个void * 指针就行了。
用的时候加一个强制类型转换不就行了。
比如说有两个类:
class A1{
show();
};
....
class A2{
hello();
}
A1 a1;
A2 a2;
...
void *p;
p=&a1;
((A1*)p)->show();
p=&a2;
((A2*)p)->help();
....
如果这几个对象有共同的祖先类,
那就用可以不用void 指针, 而是用指向父类的指针。
如果是访问虚函数,则就可以不用强制类型转换。
Sniper 2000-06-16
  • 打赏
  • 举报
回复
Unl说得是没错的。
如果你的几个类有继承关系,合理设计后(比如用虚函数等),可以用基类指针操作各派生类的对象。
Un1 2000-06-16
  • 打赏
  • 举报
回复
指针本质无外呼是一个包含地址的变量,你把它赋值指向哪里就是哪里了,这本身不存在问题,当然如果要编译器承认,你可能需要使用到强制类型转换,就象许多windows message处理中lParam的情况。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧