C++的friend函式用法如下。
在類別函式前加上friend
關鍵字則為friend函式。Friend函式直接被類別外部函式調用,且可直接存取所屬類別的private及protected的成員。
例如下面的類別Car
的函式CompareSpeed(Car& car1, Car& car2)
前有friend
則為friend函式,可在非成員函式main()
中被調用,且函式內可直接存取型別為Car
的傳入參數的private的成員屬性speed
。
main.cpp
#include <iostream>
#include <string>
using namespace std;
class Car {
private:
// 屬性 attributes
string model;
int speed;
public:
// 建構式 constructor
Car(string model, int speed) : model(model), speed(speed) {}
// 方法 methods
string GetModel() { return model; }
// friend函式
friend int CompareSpeed(Car& car1, Car& car2) {
return car1.speed - car2.speed;
}
};
int main() {
Car car1 = {"Tesla Model S", 100};
Car car2 = {"MAZDA CX-30", 80};
cout << CompareSpeed(car1, car2) << endl; // 20
return 0;
}
沒有留言:
張貼留言