質問: Design a class that stores a mathematical set of integers called MyClass . You may assume that the set will never have more than 100 elements. • A default constructor that initializes a set to the empty set. • Overload the "^" operator to implement the set membership. Returns true if an element is in the set. • Overload the "+" operator to add an element to the set. Return the original set with the new element added. • Overload the "+" operator to implement the union of two sets. Returns a new set that contains all the elements of the both sets. • Overload the "<<" operator to print the set (in the format {1, 2, 3, 4}) こういう課題が出たのですがOverloadが何かということと何をすればいいのかが分かりません。 問題はまだ続くのですがここまでの問題を解説の解説をしてもらえると助かります。よろしくお願いいたします。
回答: 和訳です: > > 整数の (数学的な) 集合を保持するようなクラス MyClass を設計せよ。ただし、集合が 100 個より多い要素を持つことは無いと仮定してよい。 > > > * デフォルトコンストラクタは集合を空集合に初期化するものとする。 > * "^" 演算子をオーバーロードして、集合のメンバーシップ関係を実装せよ。つまり、もしその要素がその集合に属しているのであれば真を返すようにせよ。 > * "+" 演算子をオーバーロードして、集合に要素を追加できるようにせよ。つまり、元の集合に新しい要素がつけ加えられたものを返すようにせよ。 > * "+" 演算子をオーバーロードして、2つの集合の和集合演算を実装せよ。つまり、両方の集合の要素全てを含む新しい集合を返すようにせよ。 > * "<<" 演算子をオーバーロードして、集合を表示するようにせよ。{1, 2, 3, 4} のような書式で良い。 > > > ここでいう「オーバーロード」とは、Wikipedia で「多重定義」という記事になっているものです。簡単に言うと、C++ では違う型の引数を持つ関数たちを同じ識別子で一気に定義することができるのです。詳しい解説は入門書に譲るとして、ここで言われているのは、自分で定義したクラス MyClass に対して「オーバーロード」の機能を使いつつ種々の演算子を実装せよ、ということです。