This one OK (堆heap对象)
List* mylist=new List();
mylist->create("mylist");delete mylist;
This one Fail (栈stack对象)
List* pmylist2;
mylist2.create("mylist2");
pmylist2 = &mylist2;delete pmylist2;
原因是 创建栈对象时会移动栈顶指针以“挪出”适当大小的空间, 再在这个空间上直接调用对应的构造函数以形成一个栈对象, 而当函数返回时会调用其析构函数释放这个对象, 再调整栈顶指针收回那块栈内存, 在这个过程中是不需要operator new/delete操作的, 所以将operator new/delete设置为private不能达到禁止产生栈(stack)对象的目的.