在C
通过在界面层次和隐藏类实现后定义类型删除。 BOOST库(例如BOOST.any and BOOST.SHARED_PTR)采用此方法。
函数函数pointers pointers pointers pointers pointers pointers pointers pointers pointers:
利用函数pointers在模板函数上操作,而在void* pointers中存储对象。 boost.function示例性。
高级技术:
。此技术允许在共享_ptr 中存储和访问任何数据类型,因此,由于sharone_ptr中的函数模板构造函数,适当的驱动器会自动调用。
〜A(){ / * Destructor * /}
};
{
const shared_ptr sp(new A);
} //调用:: 〜a()此处的优点和限制:缺陷的。虚拟功能提供了强大的类型安全性,但可以引入由虚拟功能调度引起的开销。具有模板功能的功能指针提供了更大的灵活性,但可能需要其他代码样板。 sharon_ptr 提供了便利性和简单性,但需要铸造才能访问实际对象类型。[&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && && && && && && &&&&&&&&&&&&&&&&&&&&&&&&& && && && && && && && && && && && && && &&&华,每种方法都提供不同的权衡。了解这些技术使开发人员能够为其特定要求选择最合适的方法,从而实现灵活性,性能优化和代码可维护性。