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

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.

主站蜘蛛池模板: 台南县| 铜鼓县| 宁津县| 多伦县| 科技| 井研县| 孟津县| 海城市| 密云县| 敦化市| 新巴尔虎右旗| 招远市| 凭祥市| 永福县| 崇义县| 会宁县| 卓尼县| 内黄县| 丰顺县| 精河县| 庆安县| 泸定县| 金塔县| 昌黎县| 阜宁县| 金川县| 海兴县| 治多县| 西丰县| 安福县| 华安县| 荥经县| 紫阳县| 陕西省| 固原市| 江孜县| 子长县| 获嘉县| 闸北区| 鸡西市| 保亭|