物聯網/嵌入式工程師
重磅升級:新增硬件電路設計與實戰,讓你軟硬通吃,同級PK無敵!行業風口、政策傾斜,新晉熱門高薪不內卷!0基礎一站式就業完整路徑,搶占先發優勢!
除了成員變量之外,類還提供了成員函數。
我們可以在頭文件中用以下的代碼定義一個成員函數。
#include <string> class Staff { public: std::string name; int age; int PrintStaff(); };
在頭文件中,定義一個成員函數,這個成員函數的功能是打印雇員的信息。而這個函數的實現,是在 .cpp 文件里面實現的。
打開 .cpp 文件,先 include 頭文件,然后用以下的代碼對函數進行實現。
#include "Staff.hpp" int Staff::PrintStaff() { printf("Name: %s\n", name.c_str()); printf("Age: %d\n", age); return 0; }
之后,回來 main 函數,就可以使用這個成員函數了。
#include <stdio.h> #include "Staff.hpp" int main(int argc,char **argv) { Staff staff1; staff1.PrintStaff(); Staff staff2; staff2.PrintStaff(); return 0; }
成員函數同樣受到權限修飾符的限制,上面的例子中,函數寫到了 public 下面,因此,我們可以在類的外部對其進行調用。而如果把他放到 private 里面,就不能被外部調用,只能被類中的其他函數調用。
例如,我們在上面的類中寫兩個函數,一個 private,一個 public。
#include <string> class Staff { public: std::string name; int age; public: void FuncA(); private: void FuncB(); };
使用 public 修飾的 FuncA 函數,可以在外部被調用,而我們嘗試在類的外部調用 private 修飾的 FuncB 函數,就會發現編譯器報錯了。因為 private 修飾的函數只能在類中被其他成員函數調用,例如,可以在 FuncA 中調用 FuncB。
接下來,我們來介紹一下函數的重載。成員函數的重載是指在同一個類中,函數名字相同,函數參數不同的函數。
例如:
#include <string> class Staff { public: void FuncA(); void FuncA(int a); };
這個類中,我們定義了兩個函數,都叫做 FuncA,但是他們的參數不一樣,一個沒有參數,一個參數是一個 int 類型的變量。這種情況下,兩個函數都是有效的。而在調用的時候,C++ 會根據調用者傳入的函數自行匹配相應的實現。
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報