主题:[讨论]析构函数的调用
程序一:
#include <iostream>
using namespace std;
class book
{
public:
book()
{
}
~book()
{
cout<<"destructing"<<endl;
}
void display()
{
cout<<"book name is: English"<<endl;
}
protected:
private:
};
// book mybook; //第一节点
void main()
{
// book mybook; //第二节点
mybook.display();
}
当我在第一节点定义对象mybook时,输出为:
book name is: English
Press any key to continue
当我在第二节点定义对象mybook时,输出为:
book name is: English
destructing
Press any key to continue
为什么啊?难道在第一节点定义就不调用析构函数吗??
再看下面:
程序二:
#include <iostream.h>
class book
{
public:
book()
{
}
~book()
{
cout<<"destructing"<<endl;
}
void display()
{
cout<<"book name is: English"<<endl;
}
protected:
private:
};
// book mybook; //第一节点
void main()
{
// book mybook; //第二节点
mybook.display();
}
这个程序无论mybook在哪儿定义,输出都是:
book name is: English
destructing
Press any key to continue
注意程序一与程序二在处理<iostream.h>时不同
高手请解答一下
#include <iostream>
using namespace std;
class book
{
public:
book()
{
}
~book()
{
cout<<"destructing"<<endl;
}
void display()
{
cout<<"book name is: English"<<endl;
}
protected:
private:
};
// book mybook; //第一节点
void main()
{
// book mybook; //第二节点
mybook.display();
}
当我在第一节点定义对象mybook时,输出为:
book name is: English
Press any key to continue
当我在第二节点定义对象mybook时,输出为:
book name is: English
destructing
Press any key to continue
为什么啊?难道在第一节点定义就不调用析构函数吗??
再看下面:
程序二:
#include <iostream.h>
class book
{
public:
book()
{
}
~book()
{
cout<<"destructing"<<endl;
}
void display()
{
cout<<"book name is: English"<<endl;
}
protected:
private:
};
// book mybook; //第一节点
void main()
{
// book mybook; //第二节点
mybook.display();
}
这个程序无论mybook在哪儿定义,输出都是:
book name is: English
destructing
Press any key to continue
注意程序一与程序二在处理<iostream.h>时不同
高手请解答一下