指针问题

woomo 2008-02-29 02:25:21
现有类
class A{
...
};
class B{
...
};
class C:public A,public B{
...
};


C Cobj;
B *pb;

问题:
如何让pb正确指向Cobj;
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShardowM 2008-02-29
  • 打赏
  • 举报
回复
C Cobj;
B *pb;
pb = &Cobj; //子类到父类是不需要类型转换的.

C *pc;
pc = dynamic_cast<C*>(pb); //父类到子类是要类型转换的
bill_fang 2008-02-29
  • 打赏
  • 举报
回复
C Cobj;
B *pb;

pb = dynamic_cast<B*>(&C);
cut9 2008-02-29
  • 打赏
  • 举报
回复
pb=&Cobj;
即可。


C++编译器自己会处理偏移量。
B* pb = &CObj;
A* pa = &Cobj;

注意 pa 和 pb 指向的地址可能是不同的。


woomo 2008-02-29
  • 打赏
  • 举报
回复
楼上的意见如何写
laolaoliu2002 2008-02-29
  • 打赏
  • 举报
回复
pb = &Cobj;----对检查严格的编译器是编不过的.
woomo 2008-02-29
  • 打赏
  • 举报
回复
pb=&Cobj;就可以了
laolaoliu2002 2008-02-29
  • 打赏
  • 举报
回复
"坏"的这种方法很可能会导致程序崩溃.
laolaoliu2002 2008-02-29
  • 打赏
  • 举报
回复
不可能吧.
sizeof(C)>=sizeof(A)+sizeof(B);
  • 打赏
  • 举报
回复
pb = &Cobj;
p0303230 2008-02-29
  • 打赏
  • 举报
回复
pb -> Cobj

64,674

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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