结构数组有什么问题?

时间:2016-04-17 06:09:28

标签: c++ structure

我想输入三角形的顶点并找到三角形的区域。我读了顶点并试图打印它。但它显示错误。你能救我吗。我试过以下

#include <iostream>
#include <math.h>
using namespace std;
struct vertex {
    float x;
    float y;
};

struct triangle {
    vertex vertices[3];
};

int main()
{
    triangle t;
    for (int i = 0; i < 3; ++i) {
        double x, y;
        cin >> x >> y;
        vertex p = { x, y };
        cout << p;
        t.vertices[i] = p;
        // cout<<t.x;
    }
}

1 个答案:

答案 0 :(得分:2)

将此添加到您的代码中:

std::ostream& operator << (std::ostream& oss, const vertex& v) {
    return oss << '(' << v.x << ',' << v.y << ')';
}

它很可能是抱怨,因为它不知道如何显示您尝试打印的结构。

即使您将其存储为{x, y},结果仍然是p仍然是对象。 C ++只是为您提供了使用list initialization语法创建对象的能力。实际上显示这个对象是一个完全不同的问题,因为它看到的只是<<运算符未被定义处理的某个对象,所以它将它的虚拟举手抛向空中并吐出错误信息。 / p>

但是因为我们刚刚创建了一个处理所述对象的运算符的定义,这个对象很难实现,它现在知道在看到顶点对象时该怎么做。

希望有所帮助