有人可以解释为什么我在类中传递变量时无法得到相同的答案吗?我的代码是
#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的输出。 预先感谢您的回答。
答案 0 :(得分:3)
因为
int get_k() { return k; }
(应为const
限定)返回一个int
eger。试试
double get_k() const { return k; }
此外,您应该使用构造函数成员初始化器列表,而不是在构造函数主体中进行复制:
cl(double g) : k{ g }
{}