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