官术网_书友最值得收藏!

Using TScopedPointer to track an object

A scoped pointer is a pointer that is auto-deleted at the end of the block in which it was declared. Recall that a scope is just a section of code during which a variable is "alive". A scope will last until the first closing brace, }, that occurs.

For example, in the following block, we have two scopes. The outer scope declares an integer variable x (valid for the entire outer block), while the inner scope declares an integer variable y (valid for the inner block, after the line on which it is declared):

{
  int x;
  {
    int y;
  } // scope of y ends
} // scope of x ends

Getting ready

Scoped pointers are useful when it is important that a reference-counted object (which is in danger of going out of scope) is retained for the duration of usage.

How to do it...

To declare a scoped pointer, we simply use the following syntax:

TScopedPointer<AWarrior> warrior(this );

This declares a scoped pointer referencing an object of the type declared within the angle brackets: < AWarrior >.

How it works…

The TScopedPointer variable type automatically adds a reference count to the variable pointed to. This prevents deallocation of the underlying object for at least the life of the scoped pointer.

主站蜘蛛池模板: 稻城县| 克拉玛依市| 民和| 全椒县| 高雄市| 延长县| 张掖市| 瓮安县| 海南省| 蓬安县| 策勒县| 桂阳县| 咸宁市| 宜良县| 临清市| 综艺| 景谷| 广水市| 前郭尔| 苏州市| 潮安县| 防城港市| 新沂市| 长海县| 保靖县| 策勒县| 新和县| 襄城县| 普安县| 曲麻莱县| 庆城县| 湟源县| 长治市| 广平县| 太仆寺旗| 阿勒泰市| 恩施市| 平舆县| 苏尼特右旗| 北辰区| 香格里拉县|