1つの関数だけの演算子をオーバーロードすることは可能ですか?'->'演算子をオーバーライドしたいのですが、print関数(-> print())で呼び出された場合のみです。これは奇妙なリクエストだと理解していますが、特定のAPIの実行に取り組んでおり、このようなものが必要になります。
例えば:
Cat cat;
cat.walk();
cat->print(); //I want to overload only this call
ただし、すべての場合に「->」演算子をオーバーロードしたくありません。例えば:
Cat* cat;
cat->walk(); //this should work normally
cat->print(); //this wouldn't call the print() function,
//since I overloaded cat->print()