がここに捕まってしまった++ブルースEckel氏TICを通過しながら、(第1巻)CH-12 Q-21
、 第二引数を持つ代入演算子とデフォルトを持っている文字列をクラスを作成します。値は は「op = call」と表示されます。クラスのオブジェクト を別のクラスに割り当てる関数を作成し、 代入演算子が正しく呼び出されたことを示します。
これは本当に可能ですか? C++は演算子=()に複数の引数を持たせることができますか?私はこれを試してみました:コンパイラによって与え
class X
{
public:
X& operator=(const X& x, string val = "op=call") //! error
{
// ...
}
};
int main()
{
X x1;
X x2;
x2 = x1;
}
エラー:
[Error] 'X& X::operator=(const X&, std::string)' must take exactly one argument
私は、これは有効な質問ではありませんか、それは代入演算子に複数の引数を提供するために、どのようにしている場合だと思います?
'val'のポイントは何ですか?平等の点検に第三の議論が必要なのはなぜですか?それが完全にデフォルトの行動に依存しない限り、その議論はどのように与えられるでしょうか? – Carcigenicate
[私は別の本を見つける](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – NathanOliver
正しい。 3番目の議論を追加する意味はありません。私たちがそうしようとしても、コンパイラは厳密なエラーを出します。**正確に1つの引数** –