weixin_55317608
weixin_55317608
采纳率88.9%
2021-02-24 20:15

下面程序getname()为什么不能重新赋值 请大神指点

#include<iostream>
#include<string>
using namespace std;
class Dolphin
{string name;
int age;
public:
Dolphin(string s="Unknown",int n=0):name(s),age(n)
{cout<<"Dolphin is created"<<endl;}
Dolphin(const Dolphin &m)
{this->name=m.name;
this->age=m.age;
cout<<"Dolphin is cloned"<<endl;}

void setname(string na){name=na;}
 string getname(){return name;}
void print()
{cout<<"Name:"<<name<<"Age:"<<age<<endl;}
~Dolphin()
{cout<<"Poor Dolphin is dead"<<endl;}
};
int main()
{Dolphin a("lele",5);
Dolphin b(a);
b.getname()="lipi";
a.print();
b.print();
return 0;}
 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • huanhuilong 幻灰龙 2月前
    • b.getname 是个函数
    • b.getname() 是调用这个函数
    • 调用函数后返回了这函数的返回值。
    • 函数的返回值是个b的成员变量name的拷贝,对拷贝赋值不会改变b原来的成员变量name的值。
    • 因此b.print()打印的还是b.name原来的值。
    • 最后粘贴代码最好要排版下,问题里的代码最好用插入代码的方式排版好,别人才能方便看你的代码并给予帮助。
    点赞 评论 复制链接分享

为你推荐