申明一个求两个点中点的友元函数
时间: 2024-05-11 16:18:45 浏览: 95
假设点类为Point,友元函数为midPoint,函数原型如下:
```c++
class Point {
public:
Point(int x, int y) : m_x(x), m_y(y) {}
friend Point midPoint(const Point& p1, const Point& p2);
private:
int m_x;
int m_y;
};
Point midPoint(const Point& p1, const Point& p2) {
int midX = (p1.m_x + p2.m_x) / 2;
int midY = (p1.m_y + p2.m_y) / 2;
return Point(midX, midY);
}
```
在Point类中声明midPoint函数为友元函数,使其可以访问Point类的私有成员变量。midPoint函数计算p1和p2的中点,返回一个新的Point对象。
相关问题
friend 友元类和友元函数 friend 友元类和友元函数
友元类是指在一个类中,可以通过友元关键字将另一个类声明为友元类。友元类的所有成员函数都能够访问被声明为友元类的类的私有和保护成员。这意味着友元类能够绕过类的访问限定符,直接访问私有和保护成员变量和函数。
友元函数是指在一个类中,可以通过友元关键字将一个函数声明为友元函数。这个友元函数可以访问该类的私有和保护成员,但不是类的成员函数。与友元类类似,友元函数也能够绕过类的访问限定符,直接访问私有和保护成员。
友元函数和友元类的使用方式都是通过在类中使用friend关键字进行声明。友元函数可以在类的任何地方进行声明,并且一个函数可以是多个类的友元函数。另外,友元函数不能用const修饰。
c++中存在友元函数和友元类,友元函数包括自由函数和成员函数,在友元类中可指定友元数据
是的,你说的是正确的。在C++中,可以使用“友元函数”和“友元类”来访问一个类的私有成员。友元函数包括自由函数和成员函数,它们都可以访问其它类的私有成员和保护成员。而友元类则可以访问被它声明为友元的类的私有成员和保护成员。此外,类的友元也可以是数据,你可以在类中指定一个数据为友元,使其能够访问该类的私有成员和保护成员。需要注意的是,在使用友元函数和友元类时,我们需要小心地控制对私有成员的访问,以防止滥用。
阅读全文