我希望能够创建一个具有3个浮点数(x,y,z)的类型。我试过了:
typedef struct
{
float x;
float y;
float z;
} Vertex;
但那没用。
这是否必须在main
可以看到的地方声明?我将如何为我所制作的类型创建getter方法和其他方法?
答案 0 :(得分:4)
我是如何用C ++完成的。请参阅main()以获取示例用法。 N.B。这尚未编译或测试。
#include <iostream>
class Vertex
{
public:
// Construction
Vertex(float x,float y, float z) : x_(x), y_(y), z_(z) {}
// Getters
float getX() const {return x_;}
float getY() const {return y_;}
float getZ() const {return z_;}
// Setters
void setX(float val) {x_ = val;}
void setY(float val) {y_ = val;}
void setZ(float val) {z_ = val;}
private:
float x_;
float y_;
float z_;
};
int main()
{
Vertex v(6.0f,7.2f,3.3f);
v.setZ(7.7f);
std::cout < "vertex components are " << v.getX() << ',' << v.getY() << ',' << v.getZ() << std::endl;
}
答案 1 :(得分:1)
这是否必须在main可以看到的地方声明?
是。通常,类或结构在头文件中声明,您在#include
中使用它所使用的任何翻译单元(c文件)。
答案 2 :(得分:0)
使用C,这对我有用
typedef struct { float x; float y; float z; } Vertex;
int main(void) {
Vertex a = {42, -42, 0};
if (a.x + a.y + a.z == 0) return 1; /* warning about comparing floating point values */
return 0;
}