友元函数不是成员函数,定义在类的外部,但是有权访问类的私有(private)和(protected)保护成员。举子例子
#include<iostream>
using namespace std;
template<class T>
class Rectangle
{
public:
Rectangle() {
this->length = 3;
this->width = 4;
}
Rectangle(T length, T width) {
this->length = length;
this->width = width;
}
~Rectangle() {
}
T area();
friend void Perimeter(Rectangle<T> *rec);
private:
T length;
T width;
};
template<class T>
T Rectangle<T>::area() {
return length * width;
}
template<class T>
void Perimeter(Rectangle<T> *rec) {
cout << "长度"<<rec->length<<endl;
cout << "宽度"<<rec->width<<endl;
}
void main() {
Rectangle<int> r1(2, 3);
cout << r1.area()<<endl;
Rectangle<int> r2;
Perimeter(&r2);
system("pause");
}