私は本の例に取り組んでいます.クラス定義でプロトタイプ(私はそれが呼び出されたと思います!)を提供し、クラスのcppファイルで行うようにメソッドを定義するように求めています. 特にこの場合は演算子を使用して、ミューテーター メソッドを理解するのに問題があります。それらをクラスの「フレンド」にすると意味がありましたが、この場合はそうではありませんでした。私はそれがどのように振る舞うのか理解できないようです。どんな助けでも素晴らしいでしょう!
クラスタイプが「メール」の場合:
Mail operator=(const Mail& rValue);
Mail operator+(int ounces);
それらのポイントは、後でメインでオブジェクト mailItem1 を作成するときに、そのプロパティ (重み) の 1 つに追加することです。
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;
};
それがどのように正確に機能するのか混乱しており、助けていただければ幸いです。ありがとう!