如何定义模板的友元
时间: 2023-10-13 17:12:54 浏览: 71
c++模板友元函数 友元类
在 C++ 中,可以使用 `friend` 关键字来定义模板的友元。在模板类中,当一个非成员函数或非模板类想要访问该模板类的私有成员时,可以将该函数或类声明为该模板类的友元。具体实现如下:
```c++
template <typename T>
class MyClass {
private:
T data;
// 将函数声明为友元
friend void myFunc(MyClass<T>& obj) {
obj.data = 10;
}
// 将类声明为友元
friend class MyFriendClass;
};
class MyFriendClass {
public:
void func(MyClass<int>& obj) {
obj.data = 20;
}
};
```
在上述代码中,`myFunc()` 和 `MyFriendClass` 类都被声明为 `MyClass` 的友元,可以访问 `MyClass` 的私有成员 `data`。注意,模板的友元必须是一个函数或类,不能是一个变量。
阅读全文