| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:最近在准备二级考试,看到一题来问问~
取消只看楼主 加入收藏
小小小小小黄
Rank: 1
等 级:新手上路
帖 子:28
专家分:4
注 册:2012-12-10
结帖率:44.44%
收藏
 问题点数:0 回复次数:0 
最近在准备二级考试,看到一题来问问~
代码不难理解,主要是拓展点东西问问。

#include"iostream.h"
class A
{
    public:
        A(){cout<<"CLASS A"<<endl;}
        ~A(){}
};
class B:public A
{
    public:
        B(){cout<<"CLASS B"<<endl;}
        ~B(){}
};

void main()
{
    A *p;
    p=new B;
    B *q;
    q=new B;
}

执行结果是
CLASS A
CLASS B
CLASS A
CLASS B


这个结果不难想通,关键是想问,

pq两个指针其实指向的都是堆中保存的B类的对象,
在声明A类指针pq的时候其实并没有在堆内存中分配空间,
是不是这题可以这么理解。
在声明A类指针pq的时候没有执行class A 的构造函数。

另外想问下,有没有什么书是专门讲堆栈内存的,老师说是编译原理对么,

顺便求推荐本讲数据结构的书,
已经学过这门课了,无奈睡得太多,勉勉强强及格了,
现在自己想看看,求推荐,






大学生感谢各位大神了~
搜索更多相关主题的帖子: include public 空间 拓展 
2014-03-04 13:18
快速回复:最近在准备二级考试,看到一题来问问~
数据加载中...
 
   



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

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