C++ Person类问题:无法输出成员值及修改元素
解决Person类实例输出与成员修改问题
嘿,很高兴看到你已经搞定这个问题啦!我把完整的可运行代码和关键要点整理出来,给其他可能遇到相同问题的小伙伴做个参考:
完整可运行代码(C++)
#include <iostream> #include <string> using namespace std; // 定义包含指定成员的Person类 class Person { public: string name; int age; int height; int weight; }; // 修改Person对象姓名的函数,使用引用传递确保修改生效 void ModifyPerson(Person& targetPerson) { targetPerson.name = "UpdatedRobert"; cout << "函数内修改后的姓名:" << targetPerson.name << endl; } int main() { // 实例化Person对象并赋值 Person person1; person1.name = "Robert"; person1.age = 30; person1.height = 180; person1.weight = 75; // 输出person1的初始成员值 cout << "=== person1初始信息 ===" << endl; cout << "姓名:" << person1.name << endl; cout << "年龄:" << person1.age << endl; cout << "身高:" << person1.height << "cm" << endl; cout << "体重:" << person1.weight << "kg" << endl; // 调用修改函数 ModifyPerson(person1); // 输出修改后的成员值,验证结果 cout << "=== 修改后person1信息 ===" << endl; cout << "姓名:" << person1.name << endl; cout << "年龄:" << person1.age << endl; cout << "身高:" << person1.height << "cm" << endl; cout << "体重:" << person1.weight << "kg" << endl; return 0; }
关键注意事项
- 之前无法正确输出
person1成员值,常见原因包括:成员变量未正确赋值、输出语句语法错误(比如漏写成员名、类型不匹配),或者类的成员访问权限问题(比如没加public关键字导致无法直接访问成员) ModifyPerson函数必须使用**引用传递(Person&)**或者指针传递,否则修改的只是对象的临时拷贝,原对象不会发生变化——这是很多新手容易踩的坑- 记得包含必要的头文件:
<iostream>用于控制台输入输出,<string>用于支持string类型的成员变量
内容的提问来源于stack exchange,提问作者Robert Schwartz
相关产品推荐
相关产品推荐

