结构类型的元素数组的问题

时间:2010-04-18 12:02:21

标签: c++ arrays

我正在使用Visual Studio C ++编写一个应用程序,我在为数组元素赋值时遇到问题,这是结构类型的元素数组。编译器报告了代码分配部分的语法错误。无论如何都可以分配具有结构类型的数组元素吗?

typedef struct {
    CString x;
    double y;
} Point;


Point p[3];
p[0] = {"first", 10.0};
p[1] = {"second", 20.0};
p[2] = {"third", 30.0};

4 个答案:

答案 0 :(得分:5)

给你的struct一个构造函数:

struct Point {
    CString x;
    double y;
   Point( const CString & s = "" , double ay = 0.0 ) : x(s), y(ay) {}
};

然后你可以说:

Point p[3];
p[0] = Point( "first", 10.0 );

答案 1 :(得分:4)

您可以在声明数组时使用初始化程序:

struct Point{
    CString x;
    double y;
};

Point p[3] = {
  {CString("first"), 10.0},
  {CString("second"), 20.0},
  {CString("third"), 30.0}
};

但不是在转让。

答案 2 :(得分:1)

您无法以这种方式设置数据。而是写:

p[0].x = "first": p[0].y = 10.0;
...

答案 3 :(得分:0)

Neil说的确是对的!!

此处有更多信息......