首頁 >後端開發 >C++ >C++ 友元函式詳解:如何呼叫友元函式?

C++ 友元函式詳解:如何呼叫友元函式?

WBOY
WBOY原創
2024-04-28 21:57:02333瀏覽

友元函數允許跨類別存取私有或受保護成員,語法為:class ClassName {protected: // 私有或受保護成員};friend 宣告友元函數;。要呼叫友元函數,使用點運算子和類別實例:obj.value = 10; printValue(obj);。在實戰案例中,友元函數用於比較兩個字串長度,存取了私有成員 length()。

C++ 友元函数详解:如何调用友元函数?

C 友元函數詳解:深入理解與呼叫方式

友元函數是C 中一種特殊類型的函數,它可以存取另一個類別的私有和受保護成員。這在需要跨類別存取資料或實現特殊功能時非常有用。

友元函數的語法

友元函數的語法如下:

class ClassName {
protected:
  // 私有或受保护成员
};

friend 声明友元函数;

例如:

class MyClass {
protected:
  int value;
};

friend void printValue(MyClass&); // 声明友元函数

呼叫友元函數

要呼叫友元函數,可以使用點運算子(.)和類別實例:

MyClass obj;
obj.value = 10; // 访问私有成员

printValue(obj); // 调用友元函数

實戰案例

以下是使用友元函數的實戰案例:

// 友元函数用于比较两个字符串的长度
bool compareStringLength(const string& s1, const string& s2) {
  return s1.length() > s2.length();
}

// 测试友元函数
int main() {
  string str1 = "Hello";
  string str2 = "World";

  // 使用友元函数比较字符串长度
  if (compareStringLength(str1, str2)) {
    cout << "str1 is longer than str2" << endl;
  } else {
    cout << "str2 is longer than str1" << endl;
  }

  return 0;
}

在這個例子中,compareStringLength 函數是一個友元函數,可以存取string 類別的私有成員length()

以上是C++ 友元函式詳解:如何呼叫友元函式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn