分析C ++代码段(涉及类和函数)

时间:2019-01-15 23:27:24

标签: c++

我是一名大学生,刚刚参加了初级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()

1 个答案:

答案 0 :(得分:1)

您的披萨类的构造函数带有一些有用的参数(有些具有默认参数,因此您不必传递这些参数)。

创建披萨时,例如说大披萨(16,10),您已经自动传递了直径和切片。

因此,通过使用诸如pizza.getDiameter()之类的访问器方法,您会注意到代码已经存在,可以返回构造函数中传入(并分配给直径)的内容。 accessor方法将返回所需的数字。您可以轻松地将其分配给另一对可变产品,也可以像比较示例一样直接使用它。