gpt4 book ai didi

C++ 错误 : no match for call to '(Vector3 (double, double, double)'

转载 作者:行者123 更新时间:2023-11-27 22:59:35 25 4
gpt4 key购买 nike

所以我有这个错误阻止我继续我的任务。
这是代码:

#include "std_lib_facilities.h"

class Vector3
{
public:
Vector3();
Vector3(double x1);
Vector3(double x1, double y1);
Vector3(double x1, double y1, double z1);

//Helper functions
double x() {return x1;}
double y() {return y1;}
double z() {return z1;}


private:
double x1,y1,z1;
};

/** Constructor Definitions **/
Vector3::Vector3(double x, double y, double z){
x1=x;
y1=y;
z1=z;
}
Vector3::Vector3(double x, double y){
x1=x;
y1=y;
}
Vector3::Vector3(double x){
x1=x;
}
Vector3::Vector3()
{
x1=0;
y1=0;
z1=0;
}

/** Operator Overloading **/

ostream& operator<<(ostream&os, Vector3& v) //<< Overloading
{
return os <<"["<<v.x()
<<", "<<v.y()
<<", "<<v.z()
<<"]"<<endl;
}

Vector3 operator+(Vector3 v1, Vector3 v2) //+ Overloading
{
double a,b,c;
Vector3 vector1(a,b,c);
return vector1( v1.x()+v2.x() , v1.y()+v2.y() , v1.z()+v2.z() );
}

这是一个头文件。错误发生在返回行的//+Overloading(代码的最后一位)。
我用谷歌搜索但无济于事。大多数人建议我使用与其他名称相同的函数或变量,但我找不到类似的东西。

最佳答案

Vector3 vector1(a,b,c);    
return vector1( v1.x()+v2.x() , v1.y()+v2.y() , v1.z()+v2.z() );

首先,您要使用未初始化的变量构造一个 Vector3 对象。然后您尝试对该对象调用调用运算符 (operator())。您的 operator+ 函数可能看起来像这样:

Vector3 operator+(Vector3 v1, Vector3 v2) //+ Overloading
{
return Vector3( v1.x()+v2.x() , v1.y()+v2.y() , v1.z()+v2.z() );
}

关于C++ 错误 : no match for call to '(Vector3 (double, double, double)' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com