c++

c++方法怎样进行友元函数声明

小樊
81
2024-12-04 00:57:39
栏目: 编程语言

在C++中,要声明一个友元函数,需要在类定义内部使用friend关键字。友元函数可以是全局函数、另一个类的成员函数或者另一个类的非成员函数。友元函数可以访问类的私有(private)和保护(protected)成员。

以下是一些示例:

  1. 全局友元函数声明:
#include <iostream>

class MyClass {
public:
    MyClass(int x) : value(x) {}

    friend void printValue(const MyClass& obj);

private:
    int value;
};

void printValue(const MyClass& obj) {
    std::cout << "Value: " << obj.value << std::endl;
}

int main() {
    MyClass obj(42);
    printValue(obj);
    return 0;
}
  1. 成员函数友元声明:
#include <iostream>

class MyClass {
public:
    MyClass(int x) : value(x) {}

    friend class MyFriendClass;

private:
    int value;
};

class MyFriendClass {
public:
    void printValue(const MyClass& obj) {
        std::cout << "Value: " << obj.value << std::endl;
    }
};

int main() {
    MyClass obj(42);
    MyFriendClass friendObj;
    friendObj.printValue(obj);
    return 0;
}
  1. 非成员函数友元声明:
#include <iostream>

class MyClass {
public:
    MyClass(int x) : value(x) {}

    friend void printValue(const MyClass& obj);

private:
    int value;
};

void printValue(const MyClass& obj) {
    std::cout << "Value: " << obj.value << std::endl;
}

int main() {
    MyClass obj(42);
    printValue(obj);
    return 0;
}

在这些示例中,printValue函数被声明为MyClass的友元函数,因此它可以访问类的私有成员value

0
看了该问题的人还看了