中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C++中的成員函數和友元函數怎么使用

c++
小億
104
2023-08-16 10:41:09
欄目: 編程語言

成員函數是定義在類中的函數,它可以訪問類中的成員變量和其他成員函數。成員函數使用類的對象來調用,并且隱式地訪問該對象的成員。

友元函數是在類外部定義的函數,它可以訪問類的私有成員。友元函數可以在類中聲明為友元,或者在類外部聲明為友元。

下面是成員函數和友元函數的使用示例:

#include <iostream>
class MyClass {
private:
int x;
public:
MyClass(int num) : x(num) {}
// 成員函數
void printX() {
std::cout << "x 的值為:" << x << std::endl;
}
// 友元函數聲明
friend void modifyX(MyClass& obj, int num);
};
// 友元函數定義
void modifyX(MyClass& obj, int num) {
obj.x = num;
}
int main() {
MyClass obj(5);
obj.printX(); // 輸出:x 的值為:5
modifyX(obj, 10);
obj.printX(); // 輸出:x 的值為:10
return 0;
}

在上面的示例中,MyClass 類有一個私有成員變量 x 和一個成員函數 printX()printX() 函數內部可以訪問 x 的值。

modifyX() 是一個友元函數,可以訪問 MyClass 類的私有成員變量 x。在 main() 函數中,首先調用 printX() 輸出 x 的初始值 5,然后調用 modifyX() 修改 x 的值為 10,并再次調用 printX() 輸出修改后的值。

注意,友元函數可以直接訪問私有成員變量,但它不是類的成員函數,因此不能使用類的對象來調用。在示例中,我們直接傳遞了 obj 對象作為參數給 modifyX() 函數進行調用。

0
SHOW| 黄山市| 河曲县| 凌云县| 金塔县| 吉木乃县| 墨脱县| 阳山县| 岳西县| 三原县| 宝坻区| 若尔盖县| 上蔡县| 玉屏| 云霄县| 喜德县| 徐水县| 监利县| 盐津县| 禄丰县| 盐源县| 湘潭市| 永定县| 随州市| 缙云县| 康平县| 阳高县| 岫岩| 勐海县| 岑溪市| 濮阳市| 弋阳县| 房山区| 察隅县| 上饶市| 连山| 周口市| 海门市| 洛隆县| 保定市| 鄢陵县|