gpt4 book ai didi

c++ - 如何创建将坐标初始化为随机值的构造函数?

转载 作者:行者123 更新时间:2023-11-27 23:16:12 25 4
gpt4 key购买 nike

我有这个类“Point”,它接受 x 和 y 作为参数。但是我需要创建一个构造函数来将它们初始化为随机值。我不知道它是如何完成的。这是我的代码:我创建了构造函数,但即使我设置了 x 和 y,我得到的值也是荒谬的。

#include <iostream>
#include <cmath>
#include <ctime>

using namespace std;
class Point
{
private:
double x;
double y;

public:

double get_x()
{
return x;
}
void set_x (double x)
{
this->x = x;
}
double get_y()
{
return y;
}
void set_y(double y)
{
this->y = y;
}
double distanceTo(Point p)
{
double x2 = p.get_x();
double y2 = p.get_y();
return sqrt( pow(x-x2,2) + pow(y-y2,2) );
}
Point(double x, double y)
{
x = rand()*1.0 / RAND_MAX * 100;
y = rand()*1.0 / RAND_MAX * 100;
}
Point(){};


};

void main()
{
Point a(1.2,0.5);
Point b;
b.set_x(1);
b.set_y(1);
cout << a.distanceTo(b);
system ("Pause");
}

最佳答案

那是因为您没有初始化您的成员变量,而是更改了传递给构造函数的变量的拷贝。因此,您会看到垃圾值,因为 xy(类版本)从未被初始化。您应该将其更改为:

Point()
{
x = rand()*1.0 / RAND_MAX * 100;
y = rand()*1.0 / RAND_MAX * 100;
}

此外,您永远不会在任何地方调用 srand() - 您需要在某个时候执行此操作以正确地为随机生成器设置种子。

关于c++ - 如何创建将坐标初始化为随机值的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16193823/

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