成員指標是指可以指向類的非靜態成員的指標,一般情況下指標指向乙個物件,但是成員指標指示的是類的成員,而非類的物件,類的靜態成員不屬於任何物件,因此無須特殊的指向靜態成員的指標,指向靜態成員的指標與普通指標沒有什麼區別,成員指標的型別囊括了類的型別以及成員的型別,當初始化乙個這樣的指標時,我們令其指向類的某個成員,但是不指定該成員所屬的物件,直到使用成員指標時,才提供成員所屬的物件。
指向非靜態資料成員:type class::*p = &class::meb;
指向靜態資料成員:type *p = &class::meb;
指向非靜態成員函式:type (class::*p)(...) = &class::func;
指向靜態成員函式:type (*p)(...) = &class::func;
總結:在定義時不需要用到類物件,在呼叫時,指向非靜態的需要使用物件來呼叫,指向靜態的則不需要使用物件來呼叫,指向成員函式的指標與普通意義上的指標不一樣,它存放的是偏移量。從類的起始位址的偏移量指向非靜態成員函式時,必須用類名作限定符,使用時則必須用類的例項來呼叫。指向靜態成員函式時,則不需要使用類名作限定符,使用時也不需要類的例項呼叫。
#include "stdafx.h"
#include using namespace std;
#include class a
static void foo();
static int id;
void func();
string name;
};int a::id = 100;
void a::func()
void a::foo()
int main()
函式指標 指向 類成員
在程式設計工作中常會遇到在乙個 類 中通過函式指標呼叫成員函式的要求,如,當在乙個類中使用了c 標準庫中的排序函式qsort時,因qsort引數需要乙個 比較函式 指標,如果這個 類 使用某個成員函式作 比較函式 就需要將這個成員函式的指標傳給qsort供其呼叫。本文所討論的用指標呼叫 類 的成員函...
指向類成員的指標
一 指向類的普通成員的指標 非靜態 1 指向類成員函式的指標 簡單的講,指向類成員函式的指標與普通函式指標的區別在於,前者不僅要匹配函式的引數型別和個數以及返回值型別,還要匹配該函式指標所屬的類型別。總結一下,比較以下幾點 a 引數型別和個數 b 返回值型別 c 所屬的類型別 特別之處 究其原因,是...
指向類成員的指標
前面曾寫過一篇惱人的函式指標 一 總結了普通函式指標的宣告 定義以及呼叫,還有函式指標陣列,函式指標用作返回值等。但是作為c 的研讀,我發現我漏掉了乙個最重要的內容,就是指向類成員的指標,這裡將做相應補充 相關 測試環境為vs 2010 指向類成員的指標總的來講可以分為兩大類四小類 指向資料成員還是...