我正在使用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};
答案 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)