CFile* pFile = NULL;和CFile file;的区别?
1.从内存分配上来说:
CFile* pFile = NULL; //执行后,只是在堆内存上分配了一个对象,该对象的内容全部是0;需要手工删除被占用的内存空间。
CFile file; //执行后,只是在栈内存上分配了一个对象;不需要手工释放?
2.从释放内存来说:
CFile* pFile = NULL; //需要pFile->Close();delete pFile;
CFile file; //不需要释放(对吗?)
3.从调用成员函数的方式上来说:
CFile* pFile = NULL; //pFile->Open();pFile->Close();
CFile file; //pFile.Open();pFile.Close();
4.从有无句柄方式来说:
CFile* pFile = NULL; //执行后,m_hFile有值,也就是有句柄.
CFile file; //执行后,只是在堆内存上分配了一个对象,该对象的内容全部是0;没有分配句柄(对吗?);
请问总结的对吗?如果有错请指点。另外这2种方式分别使用在什么情况下呢?