1 编程练习一
这一部分介绍C++友元函数、友元类和this指针。文章来源:https://www.toymoban.com/news/detail-823962.html
1.1 友元函数
友元函数,可以在类的成员函数外部直接访问对象的私有成员。文章来源地址https://www.toymoban.com/news/detail-823962.html
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 执行结果
到了这里,关于C++语言程序设计之类和对象进阶(3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!