Десятичная точка и класс в C ++ - PullRequest
0 голосов
/ 24 февраля 2019

Может кто-нибудь объяснить, почему я не получаю тот же ответ, который я передаю переменную в классе?Мой код

#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 голосов
/ 24 февраля 2019

Поскольку

int get_k() { return k; }

(который должен быть const -качественным) возвращает int Eger.Попробуйте

double get_k() const { return k; }

Также вы должны использовать список инициализаторов членов конструкторов вместо копирования в теле конструкторов:

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