computer 版 (精华区)

发信人: remember (明天会更好), 信区: program
标  题: C++自测题(1)
发信站: 听涛站 (2001年09月29日16:47:25 星期六), 站内信件

说明:这些问题是我最近看书的一些心得,不知道大家对这些问题是否
      有清晰的概念,所以写些自测题,大家自己先想想运行结果,然
      后再上机核实一下自己想法对不对,如有任何疑问,可以在本版
      发文。
      嗯,另外说明的是,建议在学C++的同学做做,尤其是0字班的兄
      弟,尤其是上面向对象课的兄弟。
      当然,这只是我个人敲的一些东西,可能有不完善的地方,错了
      的话,大家多多包涵......

(1)About Constructors and Destructors

请看以下程序:
#include <iostream.h>

class Stack {
public:
    Stack(){ cout<<"Stack::Stack()\n"; }
    Stack(int maxsize){ cout<<"Stack::Stack(int)\n"; }
    virtual ~Stack(){ cout<<"Stack::~Stack()\n"; }
private:
    int _stack_size;
};

class MyStack : public Stack {
public:
    MyStack(int maxsize=1024) { cout<<"MyStack::MyStack(int)\n"; }
    ~MyStack(){ cout<<"MyStack::~MyStack()\n"; }
};

int main()
{
    int i;

    Stack stack_a;
    cout<<"\n";
    Stack *p_stack_b = new Stack(256);
    cout<<"\n";
    Stack *p_stack_c = new MyStack();
    cout<<"\n";
    MyStack stack_d;
    cout<<"\n";
    MyStack *p_stack_e = new MyStack();
    cout<<"\n";
    MyStack *p_stack_f = new MyStack(512);
    cout<<"\n";

    cin>>i;

    delete p_stack_b;
    cout<<"\n";
    delete p_stack_c;
    cout<<"\n";
    delete p_stack_e;
    cout<<"\n";
    delete p_stack_f;
    cout<<"\n";

    return 0;
}

请考虑其运行结果。
同时,如果把MyStack(int maxsize=1024)改为MyStack(int maxsize),
编译是否通过?如果不通过,为什么?
ok,关于这道题我的心得稍后我再发文吧....

--
    洛阳亲友如相问  一片冰心在玉壶
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.052毫秒