代码什么的要哭了 2022-04-23 20:34 采纳率: 67.9%
浏览 17
已结题

继承和派生类问题:成员函数(含指针)如何获取对象名

一个类

数据成员:

int age;

char name[20];

数据成员的访问控制权限为private。

成员函数:

int getAge();//用于获取对象的年龄

char *getName();//用于获取对象的名字

成员函数和构造函数的访问控制权限为public

**礼貌求问:这个char *getName()怎么实现获取啊,一旦加上指针变成数组就不会用了

main函数是这样的:

int main()
{
Human jessic(12,"jessic");
cout<<"the human age is "<<jessic.getAge()<<endl;
cout<<"the name is "<<jessic.getName()<<endl;
}**

如果是char *getName() {return name;},main函数就报错了

  • 写回答

1条回答 默认 最新

  • bostonAlen 2022-04-25 14:53
    关注

    改成
    const char*getName() {return name;}

    #include <iostream>
    #include <cstring>
    using namespace std;
    class Human
    {
    public:
        Human(int _age,char _name[])
        {
            age = _age;
            for(int i=0;i<strlen(_name);++i)
                name[i] = _name[i];
        }
        const char* getName(){return name;}
        int getAge(){return age;}
    private:
        int age;
        char name[20];
    };
    int main()
    {
        Human jessic(12,"jessic");
        cout<<"the human age is "<<jessic.getAge()<<endl;
        cout<<"the name is "<<jessic.getName()<<endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 已采纳回答 4月25日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)
  • ¥15 w3wp,exe 中发生未处理的 Microsoft ,NETFramework 异常。
  • ¥20 C51单片机程序及仿真(加减器)
  • ¥15 AQWA | 水动力分析 二阶波浪力
  • ¥15 c语言题目:成绩管理系统
  • ¥22 可否请教一下matlab未定义与 'double' 类型的输入参数相对应的函数 'finverse'是什么情况