Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将值直接加载到myCircleArry中_C++_Arrays_Class - Fatal编程技术网

C++ 如何将值直接加载到myCircleArry中

C++ 如何将值直接加载到myCircleArry中,c++,arrays,class,C++,Arrays,Class,这是我的班级 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 类点{ 受保护的: int x,y; 双运算符-(常数点和定义) { 返回sqrt(功率((x-def.x),2.0)+功率((y-def.y),2.0)); } }; 班级圈子:公共点{ 私人: 整数半径; 公众: 圈() {//Point默认常量隐式调用 这个->x=x; 这->y=y; 这个->半径=半径; } void printCircleInfo() { cout首先,您应该创建一个接受参数的构造函数 它应该

这是我的班级

#包括
#包括
#包括
#包括
#包括
使用名称空间std;
类点{
受保护的:
int x,y;
双运算符-(常数点和定义)
{
返回sqrt(功率((x-def.x),2.0)+功率((y-def.y),2.0));
}
};
班级圈子:公共点{
私人:
整数半径;
公众:
圈()
{//Point默认常量隐式调用
这个->x=x;
这->y=y;
这个->半径=半径;
}
void printCircleInfo()
{

cout首先,您应该创建一个接受参数的构造函数

它应该是这样的:

Circle(const Point& pt, int radius)
{
    x = pt.x;
    y = pt.y;
    this->radius = radius;
}

确保您仍然有一个默认构造函数:

Circle()
{
    x=y=radius=0;
}
此时,您应该至少有2个构造函数

您的问题是:
如何将5 3和9加载到myCircleArry的0位置?
这是您的方法:

myCircleArry[0] = Circle(5,3,9);
如果你想从文件中获取它,你会这样做(假设我假设你的文件格式是某种方式)


Lab6DataFileHandle.close();
您正在while循环中关闭文件。谢谢,我没有注意到。
bool操作符=(const Circle&def)
应该是
bool操作符==(const Circle&def)
你的圈构造函数没有做任何有意义的事情。Lab6Data.txt是一个包含整数的文本文件,但5 3和9不是其中的一部分。我需要将它们放在第一个位置0,并使用txt文件中的数据填充其余部分。你建议的更改似乎破坏了我的数组。我现在得到的错误是没有匹配函数r调用“Circle::Circle()”知道为什么吗?添加一个默认构造函数--我将更新我的答案有一个问题,默认构造函数应该设置什么值。您可以将x、y和radius或其他一些状态设置为0。我将假设为零--这可能是一个有效的方案?
Circle(int x, int y, int radius)
{
    this->x = x;
    this->y = y;
    this->radius = radius;
}
Circle()
{
    x=y=radius=0;
}
myCircleArry[0] = Circle(5,3,9);
int x,y,radius;
Lab6DataFileHandle >> x;
Lab6DataFileHandle >> y;
Lab6DataFileHandle >> radius;
myCircleArry[i] = Circle(x,y,radius);