注册 登录
编程论坛 C++教室

最近在准备二级考试,看到一题来问问~

小小小小小黄 发布于 2014-03-04 13:18, 417 次点击
代码不难理解,主要是拓展点东西问问。

#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 的构造函数。

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

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






大学生感谢各位大神了~
2 回复
#2
peach54602014-03-04 14:24
1,是编译原理
2,网上搜很多
#3
yuccn2014-03-04 20:37
林锐的 高质量c&c++
1