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

get 方法/函数在 C++ 中给了我一个意外的数字

如何解决get 方法/函数在 C++ 中给了我一个意外的数字

我有 3 个文件 main.cpp、Student.cpp 和 Student.h 代码如下:

ma​​in.cpp

#include<iostream>
#include "Student.h"
using namespace std;



int main()
{
    Student obj;
    obj.setName("My name is Uzair Khan. \n");
    cout << obj.getName();



    obj.setRollNumber(201);
    cout << obj.getRollNumber();

}

Student.cpp

#include "Student.h"

void Student::setName(string x)
{
    name = x;
}

string Student::getName()
{
    return name;
}

int Student::setRollNumber(int rollNumber)
{
    int RollNum = rollNumber;
    return RollNum;
}

int Student::getRollNumber()
{
    return rollNumber;
}

Student.h

#pragma once
#include <string>
using namespace std;



class Student
{
public:
    void setName(string x);
    string getName();
    int setRollNumber(int rollNumber);
    int getRollNumber();

private:
    string name;
    int rollNumber;
};

输出非常出乎意料。我不知道为什么我不能将卷号作为明确的整数,而不是获得卷号 201。我得到了这样的 -858993460。我不知道为什么。我是 C++ 的新手。如果有人可以帮助/解释,那我们将非常有帮助。 谢谢

(注意:- 我使用的是 Visual Studio 2019 社区版)

输出

My name is Uzair Khan.
-858993460

enter image description here

解决方法

问题出在 Student::setRollNumber,你有

int RollNum = rollNumber;

你在这里所做的是声明一个新的局部变量;您想要做的是分配给成员变量 rollNumber。您应该将参数名称更改为其他名称,然后执行以下操作:

int Student::setRollNumber(int n)
{
    rollNumber = n;
    return rollNumber;
}

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