一林三撇 2014-06-14 08:25 采纳率: 33.3%
浏览 1939
已采纳

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条回答 默认 最新

  • 普通网友 2014-06-14 11:40
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?