日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

13.7 手柄(Handle)

發布時間:2024/4/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 13.7 手柄(Handle) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//13.7.1 對像指針問題(Object Pointer Problem)
//13.7.2 對像指針的外套(The Coat of Object Pointer)
//Sony Handle的應用

/*#include "createsony.h" #include "sonyhandle.h" #include <iostream> enum{PUREFLAT, PLASMA, LIQUIDCRYSTAL, NANOMETER};void fsh(SonyHandle& sh) { sh->adjustVolume(); sh->switchChannel(); }void createSonyObject(CreateSony* sp) { SonyHandle sh29(createSonyInch29(sp)); SonyHandle sh34(createSonyInch34(sp)); fsh(sh29); fsh(sh34); }int main() { if(CreateSony* sp = createCreateSony(PLASMA)){ createSonyObject(sp); delete sp; } system("pause"); return 0; }*/#include "createsony.h" #include "sonyhandle2.h" #include <iostream> enum{PUREFLAT, PLASMA, LIQUIDCRYSTAL, NANOMETER};void fsh(SonyHandle2& sh) {sh->adjustVolume();sh->switchChannel(); }void createSonyObject(CreateSony* sp) {SonyHandle2 sh29(createSonyInch29(sp));SonyHandle2 sh34(createSonyInch34(sp));fsh(sh29);fsh(sh34); }int main() {if(CreateSony* sp = createCreateSony(NANOMETER)){createSonyObject(sp);delete sp;}system("pause");return 0; }

  

#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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。