我在显示读取到类(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/

10-11 22:38