我在显示读取到类(class)的坐标时遇到问题。这是我第一次使用类(class),请谅解!
这是我到目前为止的内容:
#include <iostream>
using namespace std;
class Vector{
private:
float x;
float y;
public:
Vector(float f1, float f2)
{
x=f1;
y=f2;
}
Vector(){}
float display()
{
Vector v;
cout << "(" << v.x << "," << v.y << ")" << endl;
return 0;
}
};
int main()
{
Vector v1(0.5, 0.5);
cout << "v1 ";
v1.display();
system("pause");
return 0;
}
它打印
v1 (-1.07374e+008,-1.07374e+008)
最佳答案
您的问题是您没有打印出在main()
中创建的Vector的坐标,而是在函数中默认创建了Vector的坐标。代替
float display()
{
Vector v;
cout << "(" << v.x << "," << v.y << ")" << endl;
return 0;
}
你需要
float display()
{
//Vector v; remove this
cout << "(" << x << "," << y << ")" << endl;
// no v.x no v.y
return 0;
}
我建议您将默认构造函数更改为
Vector() : x(0), y(0) {}
所以它会打印
v1 (0,0)
你也应该改变
Vector(float f1, float f2)
{
x=f1;
y=f2;
}
至
Vector(float f1, float f2) : x(f1), y(f2) {}
因为要养成良好的习惯。在处理非POD类型时,这可以节省资源和CPU周期。有关更多信息,请参见Why should I prefer to use member initialization list?。
关于c++ - 如何显示类里面的坐标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34635663/