动态对象的创建
动态对象创建的背景
  空中有多少架飞机?一个网络中有多少台电脑在上网?这些东西都是不断变化的,所以运行时创建对象和消费对象是基本的要求。
  在c++中要求删除一个指针后应该立即把指针赋值为0;
#include <iostream>
using namespace std;

class tree
{
public:
        tree(int Height):height(Height){}
        int height;
        ~tree() {cout << "*****" << endl;}
        friend ostream& operator << (ostream& os, tree* t)
        {
                return os << "tree Height is "
                                    << t->height << endl;
        }
};

int main(int argc, char * argv[])
{
        tree* T = new tree(35);
        cout << T;
        delete T;
        T = NULL; /// 删除指针后最好把指针赋为NULL,以免对一个对象删除两次
}                         /// 因为如果指针为0,删除多次不会产生错误
   malloc是一个函数,分配一块其参数大小的内存。由于你可以在此内存放如何东西,所以它返回的是void*而且你要用强制转换来设置它的类型。malloc仅仅分配内存。  
    new是一个符号,调用malloc来分配内存然后调用构造函数。new要初始化分配的内存,