C++的成員指標
C++的成員指標平時不怎麼用,雖然是冷僻的知識,但是還是值得去了解下。成員指標與一般指標的最大區別就是類內部是沒有地址的,所以成員指標要理解為“類中偏移量”。
還是先貼出程式碼,比較好說。
class Simple{
public:
int a,b;
int f(float) const{return 1;}
int f(int) const{return 1;}
};
int (Simple::*fp)(float)const;
int main()
{
Simple s;
int Simple::*pmInt = &Simple::b;
s.*pmInt = 4; //s.b = 4
fp = &Simple::f;
(s.*fp)(1.0); //s.f(1.0)
Simple *sp = &s;
sp->*pmInt = 4; //sp->b = 4;
(sp->*fp)(1.0); //sp->f(1.0)
}
1,成員變數指標,int Simple::*pmInt = &Simple::b
這是把Simple
的b成員變數的類地址偏移量給了pmInt
然後s
可以通過這個指標變數來訪問自己的成員變數b
。
2,成員函式指標,int (Simple::*fp)(float)const
是函式指標的定義,在main
函式裡,需要對其賦值為成員函式的地址。
相關文章
- C++ 類成員指標C++指標
- c++智慧指標中的reset成員函式C++指標函式
- 成員方法的this指標指標
- C++智慧指標作為成員變數C++指標變數
- 函式指標使用c++類成員函式函式指標C++
- 淺談C++指標直接呼叫類成員函式C++指標函式
- C++學習day18之 指向類成員的指標C++指標
- 如何使用成員函式指標函式指標
- 都是指標資料成員“惹的禍”指標
- 類成員的指標 classname::*member, (classname::*pf)()指標
- 為什麼 C++ 中成員函式指標是 16 位元組?C++函式指標
- C++物件導向程式設計(一):基於物件(無成員指標)C++物件程式設計指標
- C++ this 指標C++指標
- C++中的this指標C++指標
- C++指標理解C++指標
- C++智慧指標C++指標
- 【c++】智慧指標C++指標
- C++中的成員物件C++物件
- C++類中的常成員和靜態成員C++
- C/C++指向指標的指標C++指標
- C++的未來和指標C++指標
- C++中的指標與引用C++指標
- c++ 函式指標C++函式指標
- C++引用和指標C++指標
- C++指標轉換C++指標
- C++指標問題C++指標
- 「C++」理解智慧指標C++指標
- c++指標小計C++指標
- C++中的static成員、static const成員和const成員的初始化C++
- c++類的靜態成員C++
- c++中的靜態成員C++
- C++:類的成員函式C++函式
- C++:類的靜態成員C++
- C++ 類的靜態成員C++
- C++之友元成員C++
- 再學C/C++ 之 指標常量 和 常量指標C++指標
- 詳解c++指標的指標和指標的引用C++指標
- C++指標與引用的區別C++指標