我正在研究书中的一个示例,他们在类定义中为我们提供了原型(我认为它被调用了!),然后他们希望我们像在类的 cpp 文件中那样定义方法。我在理解 mutator 方法时遇到了麻烦,特别是在这种情况下使用运算符。当你让他们成为班级的“朋友”时更有意义,但在这种情况下他们没有。我似乎无法弄清楚它会如何表现。任何帮助都会很棒!
类类型为“邮件”:
Mail operator=(const Mail& rValue);
Mail operator+(int ounces);
它们的重点是稍后在我们创建对象 mailItem1 时,我们希望将其添加到它的属性之一(重量)
mailItem1 = mailItem1 + ADDITIONAL_WEIGHT;
我知道您不一定需要查看所有内容,但这是整个班级。
class Mail
{
// Public Interface
public:
// Class Constructor(s)
Mail();
Mail(const char* type, double perOunceCost, int weight);
Mail(const Mail& other);
// Class Destructor
~Mail()
{ } // Nothing to do, included for completeness
// Mutator Methods
Mail operator=(const Mail& rValue);
Mail operator+(int ounces);
// Observer Methods
double getCost() const;
friend ostream& operator<<(ostream& stream, const Mail letter);
private:
// Class "static, const" Constant Values
static const int TYPE_SIZE = 30;
static const char FIRST_CLASS[];
static const double FIXED_COST;
static const int DEFAULT_WEIGHT = 1;
// Variable Declarations
char type[TYPE_SIZE];
int weight;
double perOunceCost;
};
我很困惑它是如何工作的,并希望得到一些帮助。谢谢!