[英]Calling constructor with class member, C++
求助:使用匿名类实例:
particle p1(vec(0,0,0),vec(1,0,0),vec(-0.5,0,0),1)
创建vec实例只是为了构造粒子实例。
我正在写一个物理学的小程序,并且正在使用矢量(在数学意义上)。 向量看起来像
class vec {
public:
double x, y, z;
vec() : x(0), y(0), z(0) {}
vec(double xi, double yi, double zi) : x(xi), y(yi), z(zi) {}
};
所以我可以创建一个像a(1,0,-1)的向量。 在另一个对象中,我有
class particle {
public:
double mass;
vec pos, vel, acc;
particle(vec posi, vec veli, vec acci, double m){
pos = posi; vel = veli; acc = acci; mass = m;
}
};
我不确定如何构造粒子类的实例。 我试过了
particle p1((0,0,0),(1,0,0),(-0.5,0,0),1);
但我收到一个错误:没有已知的从double到vec的转换。
您可以随时调用构造函数。 您可以像这样调用它class_name(parameters, ...)
在您的特定情况下,它看起来像这样:
particle p1(vec(0, 0, 0), vec(1, 0, 0), vec(-0.5, 0, 0), 1);
您似乎放错了括号,变量声明,参数和某些实例化。
尝试:
particle p1 = new particle(new vec(0,0,0),new vec(1,0,0),new vec(-0.5,0,0),0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.