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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(chap 19 特殊工具与技术)类成员指针

發布時間:2025/3/21 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 19 特殊工具与技术)类成员指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 成員指針( pointer to member)

指可以指向類的非靜態成員的指針。

  • 成員指針指示的是類的成員, 而非類的對象。
  • 類的靜態成員不屬于任何對象, 因此無須特殊的指向靜態成員的指針
  • 指向靜態成員的指針與普通指針沒有什么區別。

成員指針的類型囊括了類的類型以及成員的類型。 當初始化一個這樣的指針時, 我們令其指向類的某個成員, 但是不指定該成員所屬的對象;

class Screen { public:typedef std::string::size_type pos;char get_cursor() const { return contents[cursor]; }char get() const;char get(pos ht, pos wd) const; private:std::string contents;pos cursor;pos height, width; };

1.1 數據成員指針

eg. 一個指向 Screen 類的 const string 成員的指針 / / pdata 可以指向一個常量 ( 非常量 ) Screen 對象的 string 成員 const string Screen::*pdata;初始化一個成員指針 pdata = &Screen::contents;聲明成員指針: auto pdata = &Screen::contents;

1.2 使用數據成員指針

Screen myScreen, *pScreen = &myScreen; // .*解引用 pdata 以獲得 myScreen 對象的 contents 成員 auto s = myScreen.*pdata; // -> 解引用pdata 以獲得 pScreen 對象的 contents 成員 s = pScreen->*pdata;

1.3 返回數據成員指針的函數

最好定義一個函數, 令其返回值是指向該成員的指針

class Screen { public:// data是一個靜態成員, 返回一個成員指針static const std::string Screen::*data(){ return &Screen::contents; } }// 我們調用data函數時, 將得到一個成員指針 // data()返回一個指向Screen類的contents成員的指針 const string Screen::*pdata = Screen::data();// pdata指向Screen類的成員而非實際數據, 要想使用pdata必須把它綁定到Screen類型的對象上 auto s = myScreen.*pdata;

總結

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 19 特殊工具与技术)类成员指针的全部內容,希望文章能夠幫你解決所遇到的問題。

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