微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过类方法打印字符串*?

如何解决如何通过类方法打印字符串*?

我有一堂课:

n-1

那么:

class Person
{
    string* name;
    
     Person(string nm)
     {
       name=&nm;
     }

     void print()
     {
       cout<<"That name: "<<*name<<endl;
     }

};

控制台显示“分段错误”。好的,但是我错在哪里,我应该如何编写此代码来打印它?附注。我必须在这个类中使用一个字段“字符串*名称”。

解决方法

您按值获取参数,然后引用它。在构造函数的末尾,参数被销毁,留下一个悬空指针。

Person(string nm)
     {
       name=&nm;
     }

要么按值存储字符串而不是按指针存储,要么将其存储为 const char*。

,

我解决了这个问题。我不得不在课堂上这样做:

class Person
{
    string* name;
    
     Person(string* nm)
     {
       name=nm;
     }

     void print()
     {
       cout<<"That name: "<<*name<<endl;
     }

};

然后在函数 main 中:

main()
{
   string str_name="Jack";
   Person first(&str_name);
   
   first.print();
}

现在,一切都正确了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。