13.7 手柄(Handle)
生活随笔
收集整理的這篇文章主要介紹了
13.7 手柄(Handle)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//13.7.1 對像指針問題(Object Pointer Problem)
//13.7.2 對像指針的外套(The Coat of Object Pointer)
//Sony Handle的應用
#ifndef HEADER_SONYHANDLE #define HEADER_SONYHANDLE #include "sony2.h"class SonyHandle {Sony* sp; public:Sony* operator->(){ return sp;}SonyHandle(Sony* pp) : sp(pp){};~SonyHandle(){} }; #endif;
#ifndef HEADER_SONYHANDLE2 #define HEADER_SONYHANDLE2 #include "sony2.h"class SonyHandle2 {Sony* sp; //定義一個Sony的指針int* count;//定義一個整形變量 public:SonyHandle2(Sony* pp) : sp(pp),count(new int(1)){}; SonyHandle2(const SonyHandle2& sh):sp(sh.sp),count(sh.count){ (*count)++; }Sony* operator->(){ return sp;}SonyHandle2& operator+(const SonyHandle2& sh){if(sh.sp == sp) return *this; //本來就指向同一個對像的情況(*this).~SonyHandle2();sp = sh.sp;count = sh.count;(*count) ++;return *this;}//SonyHandle(Sony* pp) : sp(pp){};~SonyHandle2(){if(--(*count)==0){delete sp;delete count;}} }; #endif;
總結
以上是生活随笔為你收集整理的13.7 手柄(Handle)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lucene学习之——停用词
- 下一篇: 吴杭民:上海的生活成本高过纽约(贪污腐败