gpt4 book ai didi

c++ - 运算符重载函数

转载 作者:行者123 更新时间:2023-11-28 04:25:02 25 4
gpt4 key购买 nike

我在编译如下所示的运算符( double 值)函数代码时收到一条错误消息。代码只是为了找到一个点到原点的距离。请告诉我我哪里出错了,并告诉我你是如何解决它的。如果您需要更多信息,请告诉我。谢谢!

编译错误消息:

Point.cpp: In member function ‘CS170::Point CS170::Point::operator- 
(double)’:

Point.cpp:187:49: error: no matching function for call to

‘CS170::Point::Point(double)’

return Point(sqrt(((x * value) + (y * value))));
^

驱动文件中用于实现的代码:

pt3 = pt1 - 2;

  Point Point::operator-(double value)
{

Point temp;
temp=sqrt(((x * value) + (y * value)));
return temp ;

}

//list.h文件

 class Point
{
public:
// Constructors (2)
explicit Point(double x, double y);

Point();

double getX() const;

double getY() const;

Point operator+(const Point& other)const ;

Point& operator+(double value);


Point operator*(double value) ;

Point operator%(double angle);


double operator-(const Point& other)const ;

Point operator-(double value);

Point operator^(const Point& other);

Point operator+=(double value);
Point& operator+=(const Point& other) ;

Point& operator++();
Point operator++(int);

Point& operator--();
Point operator--(int);

Point& operator-();


// Overloaded operators (14 member functions)
friend std::ostream &operator<<( std::ostream &output, const Point
&point );
friend std::istream &operator>>( std::istream &input, Point
&point );

// Overloaded operators (2 friend functions)

private:
double x; // The x-coordinate of a Point
double y; // The y-coordinate of a Point

// Helper functions
double DegreesToRadians(double degrees) const;
double RadiansToDegrees(double radians) const;
};

// Point& Add(const Point& other); // Overloaded operators (2 non-member,
non-friend functions)
// Point& Multiply(const Point& other);
Point operator+( double value, const Point& other );
Point operator-( double value, const Point& other );

最佳答案

Point 类构造函数有两个参数,xy,而 sqrt 的结果是一个单一的值(value)。如果你想两次使用相同的值,那么要么创建一个接受单个值的构造函数,要么将 sqrt 的结果赋给一个变量,然后将该变量传递给构造函数两次。

关于c++ - 运算符重载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54531189/

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