如何解决get 方法/函数在 C++ 中给了我一个意外的数字
我有 3 个文件 main.cpp、Student.cpp 和 Student.h 代码如下:
main.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
解决方法
问题出在 Student::setRollNumber
,你有
int RollNum = rollNumber;
你在这里所做的是声明一个新的局部变量;您想要做的是分配给成员变量 rollNumber
。您应该将参数名称更改为其他名称,然后执行以下操作:
int Student::setRollNumber(int n)
{
rollNumber = n;
return rollNumber;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。