获取和设置函数 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&amp; 获取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++的主要内容,如果未能解决你的问题,请参考以下文章

C++获取网卡ID用哪个函数?谢谢。

求C++调用opencv设置获取摄像头图像大小的方法

使用 C++ 在 Windows 中获取时区

C++ 函数返回与函数设置指针

在 C++ 文件主体中为引用变量分配内存和设置值的问题(不在函数中)

C++ 中单一方法与获取/设置属性的重载? [关闭]