开辟内存的问题
- C/C++ code
template <class T>class myList{private: void** list; int numItem;public: myList() { list=NULL; numItem=0; list=new void*[10]; } void addItem(T* item) { list[numItem++]=(void*)item; } T* getItem(int pos) { return (T*)list[pos]; }};class myData{private: int data;public: myData(int i) { data=i; } int getData() { return data; }};int _tmain(int argc, _TCHAR* argv[]){ myList<myData> list; list.addItem(new myData(4)); list.addItem(&myData(8)); cout<<list.getItem(0)->getData()<<endl; cout<<list.getItem(1)->getData()<<endl; return 0;}问题是
list.addItem(new myData(4));
list.addItem(&myData(8));
这两句性质是否相等
[解决办法]
&myData(8)尝试取临时对象的地址,不行
new myData(4),要记得delete