| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 627 人关注过本帖
标题:关于对对象的赋值问题(不懂啊,望高手详解!)
只看楼主 加入收藏
ltf119
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-6-25
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
关于对对象的赋值问题(不懂啊,望高手详解!)
例如:
…………
class po
{
  private:
  Bstudent *p;       \\ Bstudent为先定义的类
  public:
 …………
};

void main()
{ po P;
  Bstudent C1(20,20);
  P=&C1;              \\ 什么意思,这样也可以吗(书上是讲可以的)?望高手详解,谢谢!
  …………
}
搜索更多相关主题的帖子: 对象 详解 赋值 
2010-06-30 20:25
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:10 
要想让等式成立,就得为po类添加对类Bstudent类的=符号的重载函数。否则P=&C1;是编译不过的。
我想书上的意思是想说明类的结构,对于po类的实例,它的内存结构(如果没有虚函数的话)的第一个地址应该就是它的成员p的,这个例子可能是想把一个Bstudent实例对象的地址赋值给这个成员指针:
*((Bstudent**)(&P)) = &C1;
这样可以做到。如果从内存上去看,这个会比较好理解。
2010-06-30 21:27
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:10 
我觉得是把对象 C1 的地址赋给对象 P 中的指针 p , 因为 po 类中的 p 为 Bstudent 类型的指针。这可以通过 po 类的构造函数来进行类型转换的,也就是说 po 中应该有一个带默认参数的构造函数,参数类型为 Bstudent * 。

2010-07-01 09:31
快速回复:关于对对象的赋值问题(不懂啊,望高手详解!)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016857 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved