读书人

开辟内存的有关问题

发布时间: 2012-04-12 15:46:35 作者: rapoo

开辟内存的问题

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

读书人网 >C++

热点推荐