标题:最近在准备二级考试,看到一题来问问~
取消只看楼主
小小小小小黄
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



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




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

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