c++類的成員函式陣列宣告與使用與普通的函式陣列稍有不同:
首先談談宣告
1.陣列宣告:int fun[max_len];//包含max_len個int型別元素的int型陣列
3.函式陣列:int (*fun[max_len])(int, int);//函式指標陣列,與普通函式指標陣列相同
4.成員函式陣列:int (classname::*fun[max_len])(int, int);//classname為類名,宣告類的成員函式指標陣列必須在此加上作用域限定符,不然編譯時會報出一堆如:」無法從int (__thiscall classname::*)(int, int)轉換為int (__cdecl *)(int, int)」的錯誤
現在宣告就完成了。再說說使用
一般在類的建構函式中將對陣列進行初始化,初始化只要注意一點就可以了。如在classname類中有成員函式int add(int, int); 現將此函式放入陣列中須照此:fun[0] = &classname::add; 如此處不新增作用域限定符編譯將會給出如:「繫結成員函式表示式上的非法操作」的錯誤。
呼叫:呼叫函式陣列時須加上this-> 如 int sum = (this->*fun[0])(2, 3);不然編譯會報出如:「..運算元非法」「項不會計算為接受2個引數的函式」等錯誤。
類的成員函式組成 C
string void 預設無引數建構函式 string const string str 預設拷貝建構函式 string void 預設的析構函式 string operator const string str 預設的賦值函式 宣告乙個類string如下 class string 補充 c 中,...
陣列和函式陣列
1.首先看一下函式,每個函式的函式名表示的是函式的入口位址,簡單看一下,如下圖 1 include stdafx.h 2 3 include stdio.h 4 include stdlib.h 5 6void test void 7 1011 int main void 12 執行結果如下 2 函...
過載函式 陣列
檔名稱 test.cpp 完成日期 2016年5月23 問題描述 設計陣列類array,為了實現測試函式中要求的功能,請補足相關的函式 構造 析構函式 和運算子過載的函式。請注意引用的用法。include include include using namespace std class array...