这是我的代码:
struct R3
{
float x;
float y;
float z;
R3(float, float, float);
R3();
};
R3::R3(float a, float b, float c)
{
x = a;
y = b;
z = c;
}
R3::R3()
{
x = 0;
y = 0;
z = 0;
}
struct Bodies
{
int Mass;
float Dist[100];
R3 Place(float, float, float);
R3 Speed(float, float, float);
R3 Acc(float, float, float);
Bodies(int, R3, R3, R3);
};
Bodies::Bodies(int M, R3 XYZ, R3 V, R3 A)
{
Mass = M;
Place = XYZ;
Speed.x = V.x;
Speed.y = V.y;
Speed.z = V.z;
Acc.x = A.x;
Acc.y = A.y;
Acc.z = A.z;
}
我的问题是,对于Place = XYZ;,它显示错误“无效使用成员(你忘了'&'?)” 并且对于Speed.x = V.x; “确定类型的上下文信息不足”。
答案 0 :(得分:2)
您的Place,Speed和Acc成员被宣布为职能。 使用:
struct Bodies
{
int Mass;
float Dist[100];
R3 Place;
R3 Speed;
R3 Acc;
代替。
并在构造函数中使用初始化:
Bodies::Bodies(int M, R3 XYZ, R3 V, R3 A): Mass(M), Place(XYZ), Speed( V ), Acc( A ){}
而不是分配。
答案 1 :(得分:1)
Place
是一个带有三个floats
的成员函数,您试图在构造函数中赋值给它。你不能这样做。也许您的意思是Place
成为R3
类型的数据成员:
struct Bodies
{
...
R3 Place;
R3 Speed;
...
};
答案 2 :(得分:0)
这些是函数声明:
R3 Place(float, float, float);
R3 Speed(float, float, float);
R3 Acc(float, float, float);
不是对象创作。