我正在编写一个名为 Vector 的类,它表示一个 3 维向量。我需要一个构造函数,它可以采用预先存在的 Vector 对象并从中创建一个新对象。这是构造函数:
Vector::Vector(const Vector &v1){
for(int i = 0; i < d; i++)
components[i] = v1.components[i];
}
这是编译器给我的注释:
candidate constructor not viable: no known conversion from 'Vector *'
to 'const Vector &' for 1st argument; dereference the argument with *
Vector::Vector(const Vector &v1){
我还有一个幅度函数:
double Vector::magnitude(){
return std::pow(dot(this, this), 0.5);
}
我来自java,所以使用这个我的意思是说使用这个类的实例并将它作为向量传递给点函数。我收到以下错误:
error: no viable conversion from 'Vector *' to 'Vector'
return std::pow(dot(this, this), 0.5);
我还有一个单位向量函数,我尝试使用上面的构造函数创建 Vector 对象的副本,使用this
.
Vector Vector::getUnitVector(){
Vector unit(this);
unit.scale(1/unit.magnitude());
return unit;
}
我收到以下错误:
error: no matching constructor for initialization of 'Vector'
Vector unit(this);
我该如何解决这些错误?谢谢你。