C ++:我没有得到正确的输出(菜鸟问题)

约瑟夫·阿里

因此,我对C ++非常陌生,并且正在研究流和成员函数。我正在尝试将值im传递给我的类,但我没有获得正确的值。相反,我得到了诸如以下的垃圾值:

( this is the name: , and this is the age: 3223232)

在输出中。这是我的代码:

#include <iostream>
using namespace std;

class Person{
    string name;
    int age;
    public:
    ostream& print_on(ostream &o) {
        return o << '( this is the name: ' << name << ', and this is the age: ' << age << ')';
    }
        Person(){
            name="noname";
            age=0;
        }
        Person(string name, int age){
            name=name;
            age=age;
        }
        void setName(string n) {
        name=n;
        }
        string getName() {
         return name;
        }
        void setAge(int a){
            age=a;
        }
        int getAge(){
            return age;
        }
        friend ostream& operator << (ostream &output,Person &p);
};
 ostream& operator << (ostream &output, Person &p){
     return p.print_on(output);
 }

int main()
{
   string name="Helen";
    int age=24;

       Person p(name,age);
       cout<<p;

    return 0;
}
来自莫斯科的弗拉德

在此构造函数定义中

    Person(string name, int age){
        name=name;
        age=age;
    }

参数隐藏具有相同名称的类的数据成员。

而是写例如

    Person(string name, int age){
        this->name=name;
        this->age=age;
    }

要么

    Person(string name, int age){
        Person::name=name;
        Person::age=age;
    }

或者更好的方法是写

    Person( const string &name, int age ) : name( name ), age( age )
    {
    }

考虑到您需要包括标题 <string>

#include <string>

同样,不更改类对象的成员函数也应声明为常量函数。例如

ostream& print_on(ostream &o) const
{
    //…
}

同样在朋友运算符中,第二个参数也应具有限定符const

friend ostream& operator << (ostream &output, const Person &p);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的C代码没有得到正确的球体体积?

来自分类Dev

#定义b + c混淆。.我没有得到我期望的输出

来自分类Dev

我写了一个C ++程序来模拟Enigma机器,但没有得到输出

来自分类Dev

使用 C 中的读写,我没有得到正确的 2 个数字的总和?

来自分类Dev

使用 C 中的读写,我没有得到正确的 2 个数字的总和?

来自分类Dev

我没有得到正确的输出

来自分类Dev

没有编译错误,但在 C 中没有得到任何输出

来自分类Dev

为什么我没有得到正确的乘法输出?

来自分类Dev

C++ - 没有得到预期的输出到控制台

来自分类Dev

使用 C++ 中的增量运算符没有得到正确的结果

来自分类Dev

为什么这个动态字符数组在 C 中没有得到正确的输入?

来自分类Dev

为什么我在导入 msxml6 时没有得到 C4192?

来自分类Dev

我的代码有什么问题?没有获得正确的C ++程序输出

来自分类Dev

在C中没有得到NULL指针错误

来自分类Dev

我的mysql JOIN有什么问题,我没有得到正确的结果

来自分类Dev

为什么我在这段代码中没有得到正确的输出?

来自分类Dev

我没有得到在列表视图上搜索项目的正确输出

来自分类Dev

查询的正确结构。没有得到日志输出

来自分类Dev

Project Euler 问题 #1 - 没有得到正确答案

来自分类Dev

为什么我没有得到NSString的输出

来自分类Dev

为什么我没有得到想要的输出?

来自分类Dev

没有得到像我这样的输出

来自分类Dev

没有得到我的代码的输出

来自分类Dev

为什么我没有得到任何输出?

来自分类Dev

为什么我没有得到任何输出

来自分类Dev

为什么我没有得到任何输出

来自分类Dev

汇编输出(我没有得到它)

来自分类Dev

我没有得到正确的 title 值来传递

来自分类Dev

INNER JOIN 的问题我没有得到想要的结果

Related 相关文章

  1. 1

    我的C代码没有得到正确的球体体积?

  2. 2

    #定义b + c混淆。.我没有得到我期望的输出

  3. 3

    我写了一个C ++程序来模拟Enigma机器,但没有得到输出

  4. 4

    使用 C 中的读写,我没有得到正确的 2 个数字的总和?

  5. 5

    使用 C 中的读写,我没有得到正确的 2 个数字的总和?

  6. 6

    我没有得到正确的输出

  7. 7

    没有编译错误,但在 C 中没有得到任何输出

  8. 8

    为什么我没有得到正确的乘法输出?

  9. 9

    C++ - 没有得到预期的输出到控制台

  10. 10

    使用 C++ 中的增量运算符没有得到正确的结果

  11. 11

    为什么这个动态字符数组在 C 中没有得到正确的输入?

  12. 12

    为什么我在导入 msxml6 时没有得到 C4192?

  13. 13

    我的代码有什么问题?没有获得正确的C ++程序输出

  14. 14

    在C中没有得到NULL指针错误

  15. 15

    我的mysql JOIN有什么问题,我没有得到正确的结果

  16. 16

    为什么我在这段代码中没有得到正确的输出?

  17. 17

    我没有得到在列表视图上搜索项目的正确输出

  18. 18

    查询的正确结构。没有得到日志输出

  19. 19

    Project Euler 问题 #1 - 没有得到正确答案

  20. 20

    为什么我没有得到NSString的输出

  21. 21

    为什么我没有得到想要的输出?

  22. 22

    没有得到像我这样的输出

  23. 23

    没有得到我的代码的输出

  24. 24

    为什么我没有得到任何输出?

  25. 25

    为什么我没有得到任何输出

  26. 26

    为什么我没有得到任何输出

  27. 27

    汇编输出(我没有得到它)

  28. 28

    我没有得到正确的 title 值来传递

  29. 29

    INNER JOIN 的问题我没有得到想要的结果

热门标签

归档