嵌入式工程師
3次就業內推,全流程就業服務,行業風口、政策傾斜,新晉熱門高薪不內卷,越老越吃香!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 可將課程添加到書簽
舉報