• ベストアンサー

同一クラスに同名メソッドは可能???

現在AAAというクラスにBBBと言うメソッドを作っており、 BBBには現在引数がないのですが、 引数がある場合の処理を書きたい為、 function BBB($xxx) を作りたいと思っておりますが普通に書くだけではエラーになってしまい、 どうにかエラーにならずに書く方法があればと思い質問させて頂きました。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

class AAA{ function BBB($xxx = ""){ } } じゃ、だめ?

momo12345
質問者

お礼

この場合引数を渡さないでも問題ないのですね。 この方法でかこうと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#2の指摘の通り、ふつうは function BBB($xxx= NULL){} などの処理を書きます。 ただ引数があらたに追加されるとい事は、処理がちがうのですから わざわざ同じ名前のユーザー関数を使用せずに、 別名の関数を定義すれば済むような気がしますが、違いますか?

momo12345
質問者

補足

やってることはほぼ同じなので同じ名前にしたかったのです。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • Willyt
  • ベストアンサー率25% (2858/11131)
回答No.1

構造化限度ではidentifier は同じレベルではメソッドであろうと、変数であろうとダブることは許されません。名前を例えばBBBBBにする等、変えなければチェッカーが通してくれません。これを通すとコンパイル不能になってしまいます。 これは理屈ではなく、そういう仕様になっているから仕方ないのです。引き数があるから違いが分るので、通すべきだということなのでしょうが、これは仕様の問題であり、いかんともしがたいのです。

momo12345
質問者

補足

ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A