C++语言程序设计之类和对象进阶(3)

发布时间:2024年01月24日

1 编程练习一

        这一部分介绍C++友元函数、友元类和this指针。

1.1 友元函数

        友元函数,可以在类的成员函数外部直接访问对象的私有成员。

1.1.1 设计代码

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
class CCar;//提前声明CCar类,以便后面的CDriver类使用
class CDriver
{
public:
	void ModifyCar(CCar* pCar);//改装汽车
};
class CCar
{
private:
	int price = rand() % 1000;
	//声明友元
	friend int MostExpensiveCar(CCar cars[], int total);
	//声明友元
	friend void CDriver::ModifyCar(CCar* pCar);
};
void CDriver::ModifyCar(CCar* pCar)
{
	for (int i = 0; i < 5; i++)
	{
		pCar->price += 1000;//汽车改装后价值增加
		pCar++;
	}
}
int MostExpensiveCar(CCar cars[], int total)
{
	//求最贵汽车的价格
	int tmpMax = -1;
	for (int i = 0; i < total; i++)
	{
		cout << cars[i].price << " ";
		if (cars[i].price > tmpMax) {
			tmpMax = cars[i].price;
		}
	}
	cout << endl;
	return tmpMax;
}
int main()
{
	srand(time(NULL));
	CCar cars[5];
	int tmpMax;
	tmpMax = MostExpensiveCar(cars, 5);
	cout << tmpMax << endl;
	CDriver c;
	c.ModifyCar(cars);
	tmpMax = MostExpensiveCar(cars, 5);
	cout << tmpMax << endl;
	return 0;
}

1.1.2 执行结果

图1 友元函数代码执行结果
文章来源:https://blog.csdn.net/BraveTomato/article/details/135824393
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。