第五十六讲 迭代器(1)

任何一样新事物的诞生总是需要千千万万个疑问,带着问题去上路,总比漫无目的的游走要好得多,至少,我们是有的放矢,所以现在我们来思考这个问题:
——————————
My_Array<SpreadSheetCell>* m_Array = new My_Array<SpreadSheetCell>(10);


My_Point<SpreadSheetCell>m_ptr(m_Array,3);


delete m_Array;


*m_ptr = "

hello"

;


——————————

My_Array是我们自定义的一个类,他的作用是拿来构建一个数组,我们在堆上动态构建一个包含10个SpreadSheetCell的数组,然后我们在定义一个指针(My_Point是我们的指针类,这就是我们要所说的类似于内建指针的东西),让他指向m_Array的第三个元素,然后我们再把m_Array删掉,最后我们再给m_ptr所指向的元素赋值,这听起来很夸张,很疯狂的样子,堆上创建的东西都被我们删了,m_ptr不是已经悬空了吗?哦,对了,我们好像刚才学习过引用计数的一种技术,那么是不是可以考虑派上用场了呢?这就是大家今天要思考的问题。

带着上面的问题,大家去思考我们该怎么才能让上面的这段代码运行起来,同时让他实现上面我们所说的功能,My_Array和My_Point是我们要实现的,当然,为了能够让上面程序顺利运行,我们或许可能还要再回去看看我们的SpreadSheetCell。

今天有些感冒,头晕脑胀身软,所以就偷闲一下,大家也好好思考这个问题,很有意思,如果大家能够让上面程序运行,那么接下来我们说标准模板库的时候大家就会更好理解,我希望大家知道,我们现在所做的一切,都是在为标准模板库做准备,因为当说完标准模板库时,我们C++的内容也算是差不多了。
==================
回复D直接查看目录

原文始发于微信公众号(

C/C++的编程教室

):第五十六讲 迭代器(1)

|

发表评论