搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 关于对对象的赋值问题(不懂啊,望高手详解!)
标题:
关于对对象的赋值问题(不懂啊,望高手详解!)
只看楼主
ltf119
等 级:
新手上路
帖 子: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
等 级:
贵宾
威 望:
23
帖 子:862
专家分:1954
注 册:2008-10-12
第
2
楼
得分:10
要想让等式成立,就得为po类添加对类Bstudent类的=符号的重载函数。否则P=&C1;是编译不过的。
我想书上的意思是想说明类的结构,对于po类的实例,它的内存结构(如果没有虚函数的话)的第一个地址应该就是它的成员p的,这个例子可能是想把一个Bstudent实例对象的地址赋值给这个成员指针:
*((Bstudent**)(&P)) = &C1;
这样可以做到。如果从内存上去看,这个会比较好理解。
2010-06-30 21:27
不归鹄
来 自:冥王星
等 级:
蜘蛛侠
威 望:
4
帖 子:491
专家分:1380
注 册:2009-12-20
第
3
楼
得分:10
我觉得是把对象 C1 的地址赋给对象 P 中的指针 p , 因为 po 类中的 p 为 Bstudent 类型的指针。这可以通过 po 类的构造函数来进行类型转换的,也就是说 po 中应该有一个带默认参数的构造函数,参数类型为 Bstudent * 。
2010-07-01 09:31
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-311766-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.549531 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved