You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:10:24