#include <iostream>
using namespace std;
class person
{
public:
void hanshu(string name1)
{
name1=name;
cout << name<< endl;
}
private :
string name;
int age;
};
int main(){
person p;
p.hanshu("李四");
return 0;
}
为什么我调用这个函数没输出任何东西
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- ShowMeAI 2022-12-22 13:09关注
望采纳
原因是在函数 hanshu 中,你将参数 name1 赋值给了类的私有成员变量 name,但是并没有改变参数 name1 的值。因此,在函数内部使用的是参数的初始值,而不是赋值后的值。可以这样修改代码:
void hanshu(string name1) { name = name1; // 使用类的私有成员变量 cout << name << endl; }
注意,在 C++ 中,默认情况下函数的参数是值传递的,也就是说,函数内部对参数的修改不会影响到函数外部的变量。如果希望函数能够修改函数外部的变量,可以使用引用传递(使用取地址符 &)。例如:
void hanshu(string &name1) // 使用引用传递 { name1 = name; // 修改参数的值 cout << name1 << endl; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 ARKts悬浮窗和快捷方式问题
- ¥15 comparecluster没有办法kegg
- ¥15 远程访问linux主机超时
- ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
- ¥15 CPU卡指令整合指令数据都在图片上
- ¥15 odoo17处理受托加工产品
- ¥15 如何用MATLAB编码图三的积分
- ¥15 圆孔衍射光强随孔径变化
- ¥15 MacBook pro m3max上用vscode运行c语言没有反应
- ¥15 ESP-PROG配置错误,ALL ONES