我是一名大学生,刚刚参加了初级c ++课程。我以前从未上过C ++,大约两年前才上过一门C课程。在下面,我粘贴了一个今晚必须分析的家庭作业问题。我不想你们回答,只是给我一些从哪里开始的指示。我遇到的问题是我不知道在哪里传递问题中声明的变量。例如,我必须在函数中评估的第一个问题是large.getDiameter()
,但是我绝对不知道从哪里开始。
class Pizza {
private:
double diameter;
int slices;
double area() { return (diameter/2)*(diameter/2)*3.14; }
public:
bool sauce;
bool cheese;
bool pepperoni;
public:
Pizza(double dia,
int nslice=8,
bool has_sauce=true,
bool has_cheese=true,
bool has_pepp=true)
{
diameter = dia;
slices = nslice;
sauce = has_sauce;
cheese = has_cheese;
pepperoni = has_pepp;
}
int getSlices() { return slices; }
double getDiameter() { return diameter; }
double areaPerSlice() {
return area() / slices;
}
};
考虑以下在函数中声明的变量:
Pizza large(16, 10);
Pizza personal(6, 4,true,true,false);
Pizza medium(12);
Pizza small(10.0,6);
我必须通过的一些例子是:
1.)large.getDiameter()
2.)small.getDiameter()
3.)large.areaPerSlice() > small.areaPerSlice()
4.)personal.pepperoni
5.)medium.getSlices()
答案 0 :(得分:1)
您的披萨类的构造函数带有一些有用的参数(有些具有默认参数,因此您不必传递这些参数)。
创建披萨时,例如说大披萨(16,10),您已经自动传递了直径和切片。
因此,通过使用诸如pizza.getDiameter()之类的访问器方法,您会注意到代码已经存在,可以返回构造函数中传入(并分配给直径)的内容。 accessor方法将返回所需的数字。您可以轻松地将其分配给另一对可变产品,也可以像比较示例一样直接使用它。