C++编程思想之SmartPoint

本文探讨了C++中的SmartPoint,指出其源于Java等语言中屏蔽指针和垃圾收集机制的需求。智能指针作为对普通指针的封装,通过引用计数在不再使用时自动释放资源。作者提到了STL中的迭代器(iterator)其实质是SmartPoint,展示了如何利用迭代器体现容器的优点。文章提供了一个ObjContainer类和内部类SmartPoint的示例,实现了类似迭代器的功能,用于遍历并操作对象数组。作者强调,通过模板技术,可以进一步将SmartPoint实现为内置迭代器。
摘要由CSDN通过智能技术生成

SmartPointC++发展的一个热点。我相信Java此类的语言还是存在着他们的优点,这是SmartPoint出现的一个根源,指针是个好东东,但并非放之四海皆准的好东西。指针功能强大,功能强大的另一个意思就是如果出错,也将是灾难性的后果。Java之所以受欢迎是因为它的屏蔽指针也垃圾收集机制。对C++来说,实现这一点并非什么非常困难的事情,现在智能指针正在朝着这个方向努力。我们可以很容易的把指针包装起来,并定义引用数,当引用为0的时候,就清除它。这个问题在什么层面来实现,现在还不得而知。我知道BoostLOKI都在做这方面的工作。

我们来说说STL,我想没有人喜欢用微软的容器类。因为没有看到迭代器,我总认为迭代器才能体现出容器的优点出来。我目前对traits的理解还不深刻,待我已经能够认识到iterator是个典型的SmartPoint。正因为它是SmartPoint,它才能把模板的惊人能力表现出来。

OK,开始SmartPoint的代码:

class Obj 

{

       static int i,j;

public:

       void g() const;

       void f() const;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值