new和delete的问题
源程序如下:
#include<iostream.h>
class AA
{
public:
AA(int i, int j)
{
A=i; B=j;
cout<<"构造函数.\n";
}
~AA()
{
cout<<"析构函数.\n";
}
void print();
private:
int A, B;
};
void AA::print()
{
cout<<"打印\n";
}
void main()
{
AA *a1 = 0, *a2 = 0;
a1 = new AA(1, 2);
a2 = new AA(5, 6);
delete a1;
a1 = 0;
a1->print(); //为什么这个还是正确的??
delete a2;
}
结果如下:
构造函数.
构造函数.
析构函数.
打印
析构函数.
======================================
问题:
怎么a1->print(); 还是正确的?