PTA:车与船的重量(c++,友元)

这篇博客介绍了如何在C++中定义boat和car两个类,每个类都有weight属性,并实现一个友元函数totalweight()来计算两者重量之和。通过给出的测试程序样例,当输入车和船的重量分别为1000和2000时,输出它们的总重量为3000。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义一boat与car两个类,二者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。
测试程序样例:

在这里给出函数被调用进行测试的例子。例如:
#include <iostream>
using namespace std;

/* 请在这里填写答案 */

int main()
{
   
  int c,b;
  cin>>c>>b;
  car 
### C++ 中友元函数的概念及用法 #### 什么是友元函数? 在 C++ 编程语言中,友元函数是一种特殊类型的函数,它被授予访问类的私有(`private`)保护(`protected`)成员的权利。尽管友元函数不是类的一部分,但它可以像类内的成员函数一样操作这些隐藏的数据[^1]。 #### 声明方式 要使某个函数成为某类的,需在该类定义内部使用 `friend` 关键字来声明这个函数。例如: ```cpp class student { int score; public: friend void my_print::print(student& s); // 声明友元函数 }; ``` 上述代码片段表明 `my_print::print` 函数能够访问 `student` 类中的所有私有数据成员,比如这里的 `score` 成员变量。 #### 实现示例 下面是一个完整的例子展示如何实现并调用友元函数: ```cpp #include <iostream> using namespace std; namespace my_print { void print(student& s); } class student { string name; double gpa; public: student(string n, double g) : name(n), gpa(g) {} // 将命名空间下的函数设为 friend void my_print::print(student& s); }; void my_print::print(student& s) { cout << "Name: " << s.name << ", GPA: " << s.gpa << endl; // 访问 private 数据 } int main() { student stu("Alice", 3.8); my_print::print(stu); // 调用友元函数打印学生信息 return 0; } ``` 在这个程序里,`my_print::print` 是作为 `student` 的而存在的,因此它可以自由读取或修改对象 `stu` 所拥有的任何非公有属性。 #### PTA 浙江大学题目解析 关于 PTA 平台上的具体题目涉及友元函数的应用场景通常围绕以下几个方面展开: - **权限控制**:通过设置某些外部功能为特定类别的朋关系,允许它们突破封装限制获取必要的细节。 - **跨模块协作**:当不同部分之间需要共享敏感资源时,利用机制简化接口设计而不破坏整体结构的安全性。 由于实际考题内容会有所变化,请参照最新版本试题说明完成相应练习。如果遇到具体的编码难题或者逻辑错误分析需求,则可以根据上下文进一步探讨解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值