标题:求助!关于抽象类和引用!
只看楼主
yqh
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-2-17
 问题点数:0 回复次数:3 
求助!关于抽象类和引用!
class XX
{
protected:
int k;
public:
XX(int n=5):k(n){}
~XX() {cout<<"XX";}
virtual void f()const=0;
};
inline void XX::f()const { cont<<k+3; }
class YY:public XX
{
public:
~YY() {cont<<"YY"; }
void f()const {cont<<k-3; XX::f();}
} ;
int main()
{XX &p=*new YY;
p.f();
delete &p;
return 0;
};

XX &p=*new YY;这一句是什么意思?

[此贴子已经被作者于2006-2-27 18:46:26编辑过]

搜索更多相关主题的帖子: void public return color 
2006-02-27 15:07
西部天狼
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2006-2-23
得分:0 

你这个程序编译肯定不过,因为类的成员在没有做访问限制的情况,默认为
private,私有函数是不能被覆盖的。最好声明成为公有的。

XX &p=*new YY
这句的意思是:在堆上动态创建一个对象YY然后对返回的指针进行解引用,之后为该对象取个名称p,这样在程序中就不必通过指针操作对象了,但对象实际还是存在于堆内存中。

XX&表示XX型对象的引用


学习-->编程-->交流-->再学习-->再编程-->再交流
2006-02-27 16:46
yqh
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-2-17
得分:0 

谢谢2楼的朋友!
但是YY是类名呀!
另外堆内存是什么概念呀?


愿与所有的编程爱好者分享编程的快乐!
2006-02-27 18:52
jdytz
Rank: 2
等 级:新手上路
威 望:3
帖 子:104
专家分:0
注 册:2005-4-24
得分:0 
堆。一种常规用途的内存池(在RAM区域),其中保存了语言对象。“堆内存”或“堆”最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建一个对象时,只需用new命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!

``` 奔放潇洒活着我的自由
2006-02-28 22:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-47454-1-1.html




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

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