获取和设置函数 c++
Posted
技术标签:
【中文标题】获取和设置函数 c++【英文标题】:Get and Set function c++ 【发布时间】:2020-05-26 21:36:07 【问题描述】:我只是想知道是否有人可以帮助我了解我的代码,我有点困惑为什么它不能像我想要的那样工作,也许我误解了一些东西......该程序的重点是编写一个具有两个函数来设置和获取数字的类,但稍后在代码的主要部分我希望它打印出一个 2.52 的数字,而不仅仅是数字 2。如果有人帮忙,谢谢 :)。
#include <iostream>
#include<conio.h>
using namespace std;
class Class
public:
void Set(float x)
number = x;
int Get()
return number;
private:
float number;
;
int main()
Class object;
object.Set(2.52);
cout << "The number is: " << object.Get();
return 0;
【问题讨论】:
也许您想将int Get()
更改为float Get()
;)?
获取返回一个整数。当object.Get()
被执行时,你设置的number
的值,2,53,被转换为int
:2。这就是输出。
@user12577611 请阅读What should I do when someone answers my question?
【参考方案1】:
首先,您从Get()
返回一个int
,因此number
将转换为int
。
您还应该设置Get()
const
,因为它不会在您调用函数时更改Class
对象中的任何内容。将其设为const
可以将Class
的实例传递给通过const&
获取Class
的函数:
#include <iostream>
class Class
public:
void Set(float x)
number = x;
float Get() const // returning float and added const
return number;
private:
float number;
;
void tester(const Class& obj) // a function taking a Class by const reference:
std::cout << "The number is: " << obj.Get() << '\n';
int main()
Class object;
object.Set(2.52);
tester(object);
如果不添加const
,编译将失败。
【讨论】:
【参考方案2】:你可以像这样改变get方法类型(float)
class Class
public:
void Set(float x)
number = x;
float Get()
return number;
private:
float number;
;
int main()
Class object;
object.Set(2.52);
cout << "The number is: " << object.Get();
return 0;
【讨论】:
以上是关于获取和设置函数 c++的主要内容,如果未能解决你的问题,请参考以下文章