C++的智能指针其实就是封装的一个对象。
详细代码如下
template <class T>
class SmartPointer {
T *m_pointer;
public:
SmartPointer(T *pointer) :m_pointer(pointer) { }
//函数用完后析构,把堆空间的指针释放
~SmartPointer() {
if (m_pointer == nullptr) return;
delete m_pointer;
}
T *operator->() {
return m_pointer;
}
};
mian函数调用
int main() {
cout << "1" << endl;
{
SmartPointer<Person> p(new Person());
p->run();
}
cout << "2" << endl;
getchar();
return 0;
}
本文详细介绍了一种C++智能指针的具体实现方式,通过模板类SmartPointer实现了对堆上分配的对象进行自动管理,避免了内存泄漏的问题。文章通过具体代码展示了如何创建智能指针对象,并在对象生命周期结束时自动释放所指向的堆空间。
414

被折叠的 条评论
为什么被折叠?



