【发布时间】:2020-07-09 19:31:47
【问题描述】:
我在课堂上创建了一个结构数据成员。现在,我想使用 get 函数返回该结构的值,但它会产生错误。我不确定getcenter() 函数的数据类型应该是什么,主体应该是什么。
#include <iostream>
using namespace std;
class circle
{
private:
struct center
{
int xcord;
int ycord;
};
center cordinate;
float radius;
public:
circle()//:circle(0,0,0)
{
cordinate.xcord=0;
cordinate.ycord=0;
radius=0;
};
circle(int x, int y, float r) : cordinate{x,y}, radius(r)
{};
center getcenter()
{
return cordinate{xcord,ycord};
}
float getradius()
{
return radius;
}
void setcenter(int xaxis, int yaxis)
{
cordinate.xcord=xaxis;
cordinate.ycord=yaxis;
}
void setradius(float rad)
{
radius=rad;
}
void showdata()
{
cout<<"Center(x,y) = ("<<cordinate.xcord<<","<<cordinate.ycord<<")"<<endl;
cout<<"Radius = "<<radius<<endl;
}
};
int main()
{
circle c1;
c1.setcenter(3,4);
c1.setradius(5.4);
cout<<c1.getcenter()<<endl;
cout<<c1.getradius()<<endl;
}
如何编写getcenter() 函数?
它给了我这些错误:
错误 C2065 'xcord':未声明的标识符 错误 C2065 'ycord':未声明的标识符 错误 C2679 二进制“【问题讨论】:
-
代码有什么问题?如果它没有编译,则显示错误消息。
-
但它正在生成错误 什么错误?请在问题中发布。
-
从逻辑上讲,您的
struct看起来应该命名为coordinate,而不是center,并且center应该命名为coordinate。换句话说,圆心是坐标的一个实例。 -
return cordinate{xcord,ycord;};-- 解释你想用这行代码完成什么。 -
由于
struct center在您的班级中被声明为private,我认为班级之外的任何东西都不能引用它。
标签: c++