2 mushanps mushanps 于 2014.06.14 16:25 提问

C++中这样写会不会内存泄漏,有没有好的实现方法

template
class Foo

{
public:
Foo(T T_val);
Foo& operator=(const Foo& f);
virtual ~Foo();
const T& getTval();
private:
const T T_val;
};

template
Foo::Foo(T T_val = NULL):T_val(T_val)
{
;
}
template
Foo::~Foo()
{}
template
Foo& Foo::operator=(const Foo& f)
{
return(*new Foo(f));
}
template
const T& Foo::getTval()
{
return this->T_val;
}
int main()
{
typedef FooFoo_int;
typedef vectorFoo_vec;
Foo_vec foo_vec(10,2);
Foo_int f(4);
foo_vec.insert(foo_vec.begin(),f);

for(Foo_vec::iterator iter = foo_vec.begin();iter !=foo_vec.end();iter++)
{
    cout<<iter->getTval()<<endl;
}

}
//想问一下等号运算符重载函数会不会导致内存泄漏,有没有更好的写法

1个回答

lym753024200
lym753024200   2014.06.14 19:40
已采纳

会的!!!!!!!!!!!!!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!