类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。
友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元,关键字 friend。
"Box.h"
#pragma once
class Box
{
public:
double width;
friend void printWidth(Box box); //友元函数
void setWidth(double wid);
static int objectCount; //静态成员
Box();
//Box(const Box &obj); //拷贝构造函数
~Box();
};
"Box.cpp"
#include "pch.h"
#include "Box.h"
Box::Box()
{
}
Box::~Box()
{
}
void Box::setWidth(double wid)
{
this->width = wid; //this指针
}
"test.cpp"
// project1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include
#include "Box.h"
using namespace std;
void printWidth(Box box)
{
cout << "Width of Box:" << box.width << endl;
}
int Box::objectCount = 0; //静态成员初始化
int main()
{
Box box;
box.setWidth(10.0);
printWidth(box);
return 0;
}