首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个invalid arguments异常,找不出原因。求修正

2012-06-09 
一个invalid arguments错误,找不出原因。求修正C/C++ code#includeiostreamtemplate typename Tclass a

一个invalid arguments错误,找不出原因。求修正

C/C++ code
#include<iostream>template <typename T>class auto_ptr {public:    auto_ptr(T *p = NULL):m_ptr(p){}    auto_ptr(const auto_ptr& ptr){        delete m_ptr;        m_ptr = (T*)ptr.release();    }    virtual ~auto_ptr();     void* release() {        void* tem = m_ptr;        delete m_ptr;        return tem;    }    auto_ptr<T>& operator *() {        return *m_ptr;    }    auto_ptr<T>* operator ->() {        return m_ptr;    }private:    T *m_ptr;};


编译的时候,总是提示Invalid arguments '
Candidates are:
void * release()
'
不知道是什么原因。怎么修改?

[解决办法]
auto_ptr的头文件 <memory>.
[解决办法]
探讨

这是自己写的一个模仿<memory>里的auto_ptr的类。我找到原因了,是因为定义
auto_ptr(const auto_ptr&amp; ptr){
delete m_ptr;
m_ptr = (T*)ptr.release();

}

void* release() {
void* tem = m_ptr;
……

[解决办法]
恭喜楼主啊

热点排行