C ++中的小数点和类

时间:2019-02-24 15:21:51

标签: c++ class double

有人可以解释为什么我在类中传递变量时无法得到相同的答案吗?我的代码是

#include <iostream>

using namespace std;

class cl {
    double k;
public:
    cl(double g) { k = g; } 
    int get_k() { return k; }
};

int main()
{
    double T = 88.564;
    cl ob(T);

    double h = ob.get_k();
    cout << h << endl;
    cout << T;
}

我想在两种情况下都得到88.564,但是为什么当我将变量传递给类时却得到等于88的输出。 预先感谢您的回答。

1 个答案:

答案 0 :(得分:3)

因为

int get_k() { return k; }

(应为const限定)返回一个int eger。试试

double get_k() const { return k; }

此外,您应该使用构造函数成员初始化器列表,而不是在构造函数主体中进行复制:

cl(double g) : k{ g }
{}