• ベストアンサー

それって演算子の多重定義じゃないんですか?

今日 http://oshiete1.goo.ne.jp/kotaeru.php3?q=119986 で回答しました。 私としては、質問に対する最もまともな回答をしたつもりでしたが、 反応すらなかったので、「あれ? なんか間違ってんのかな?」と 思ったしたいです。 で、普段からC++でプログラム組んでいる人に伺いたいんですが、 これって質問に対する答えとして相当間違った方向なのでしょうか?

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

  • ベストアンサー
  • mkii
  • ベストアンサー率40% (43/105)
回答No.4

私のコードの利点は 構造体のメンバを増やしても関数pointplusを変更しなくてもよい です。 例えば、 struct point{  union {   struct {    int x;    int y;    int z;    int z2;   };   int member[4];  }; }; としても関数pointplusは変更せずに済みます。 それから、以下の2つのパターンですが、 1. pointplus(足し先点、足し元点1、足し元点2) 2. 足し先点 = pplus(足し元点1、足し元点2) 2のパターンだと、復帰値で構造体のメンバのコピーが発生するので、 1のパターンの直接変更の方が無駄がありません。

kokucho81
質問者

お礼

あ、そうかなるほど。。。。 良く考えると、(技法としては一見特殊に見えますが)考え方は至ってしごくまっとうですよね。 メンバーに名前をつけると共に、テーブル化して走査できるようにしてしまう、 こんな手法ってあったんですね。。。(しらんかったですまじで。。。) うーむ。妙なところで妙な収穫を得ましたです。。。 ありがとうございました。

その他の回答 (3)

  • mkii
  • ベストアンサー率40% (43/105)
回答No.3

みなさん言うとおりCのみの話でありC++ではないのでしょう。 C++に慣れるとあのコードで普通ですね。 Cのみでも以下のようにすればできると思うんですが、 あっさり締めきられちゃいましたね(笑) struct point{  union {   struct {    int x;    int y;    int z;   };   int member[3];  }; }; void pointplus(struct point *pa, struct point *pp1, struct point *pp2) {  int i;  for (i = sizeof (pa->member) / sizeof (int) - 1; i >= 0; i --)   pa->member[i] = pp1->member[i] + pp2->member[i]; }

kokucho81
質問者

お礼

mkii さん、アドバイスありがとうございます。 おぉ!? これは? 無名の共用体ですね。。。たしかに、これで member配列に入れた値が、x,y,zにてアクセスできますが。。。 (ちょっとこれは思いつかなかったです。。。) しかし、、結局 1. pointplus(足し先点、足し元点1、足し元点2) という形ですから、 2. 足し先点 = pplus(足し元点1、足し元点2) と大して変わんない気もするのですが、、、 なんかすごい(記述上などの)利点があるのでしょうか? (私の勉強不足ですか?)

回答No.2

質問者の質問や補足からは「C++」という言葉は一言も 出ていなかったので「C++」ではなく「C」での 質問であると(解答者のみなさんが)判断したんだろうと想像します。 「C++」でという条件がある場合は、演算子のオーバロードのほうがより最適な解答だと、私も思います。

kokucho81
質問者

お礼

shuyamakawaさま、アドバイスありがとうございます。 >質問者の質問や補足からは「C++」という言葉は一言も >出ていなかったので「C++」ではなく「C」での そうですね。そこは私もおもいました。 少なくとも質問者の方が知っているのはC言語の範囲であろうとは思いました。 と、同時に、環境等々において、何も記述なさってはいなかったので、 #「多分WindowsでVC++かBC++」あたりを使ってC言語勉強中かな~ #「そうでなければ、学校でUNIXのGNU GCC」をつかって勉強中なのだろうか。 、、、うーむ、とすれば、とりあえず(本人はC++使ってないけれど、 多分C++が動く環境だろうから)カット&ペーストで使えるように 回答しとくのが一番かな~。。。 と思ってあんな感じになったのですが、、、撃沈でした。。。 とりあえず、「C++なら妥当」と言って頂いたので、 その点では、安心できました。

noname#9414
noname#9414
回答No.1

読んでみました。 確かに一番無難そうな回答ですね。 ただ、補足やお礼を見てみると、「お早い回答」と 書かれているので、もしかしたらkokucho81様が回答 したのとほぼ同じ時間にお礼を書き込んでいて、 質問者の方は、kokucho81様の回答を読んでいない のではないでしょうか? 書き込んでいる間の時間というのは、表示される ページが更新されないので、結構こういうことは 起こりがちです。 Pointがつかない・・・だから回答しないとならずに、 誰か困っている人のためとこれからもがんばって 回答していれば、質問者の方にも心は伝わると 思いますよ。 #別に回答するのは競争ではないと思いますし・・・ #まぁ、Pointがもらえればうれしいのは確かですが。 ではでは☆

kokucho81
質問者

お礼

Kanata様。 私のわがまま勝手な疑問にアドバイス頂きありがとうございます。 >書き込んでいる間の時間というのは、表示される >ページが更新されないので、結構こういうことは >起こりがちです。 そうですね~。もしかしたら質問者の方がお礼をカキカキしている間に、 私がコネコネ回答していたのかもしれないですね~。(はぅ~ とりあえず、回答の方向性としては、それなりに妥当性の有るものでは あったということが確認できて良かったです。 >Pointがつかない・・・だから回答しないとならずに、 >誰か困っている人のためとこれからもがんばって いえ、より一層回答の「質」を高めていこうと思いました。 目指すところは、「500回答で5000点」なので。。。 #私の勝手な目標なのですが、そうやって、 #自分なりに目標点立ててやるのもありかなと。。。 #って話それてる。。。(= =;)

関連するQ&A

  • 彼はどういうつもりなんでしょうか?

    以前http://oshiete1.goo.ne.jp/kotaeru.php3?q=2142186 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2145123 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2152358と同じような質問を3度もさせていただいた者です。 今日どうしても我慢できなくなって、めっちゃ迷ったあげく彼氏の家に行ってきました。インターフォンで「話したい事がある」と言うとすんなり中に入れてくれ、ちゃんと付き合っていた時と同じように笑いもまじえつつ「もう待てない」と話しました。彼は「俺はお前が好き。やけど、メアドはまだ変えれん。けど、いつか変えるから。俺が悪いんやから、この先の事はお前が決めていいよ??」と言われ、付き合っていくことにしました。回答くださった方、ありがとうございました。 そして、家から帰る途中キッチンを見ると、いっぱいカップ麺がありました。「こんなんしか食べてないんかな」と心配になり、今週遊ぶ時に何か料理を作って持って行こうと思ったんですけど、、、やっぱり、いきなりウザイですかねぇ・・・??何度か何か作って持ってった事はあるんですけど。仲良くなって突然・・・って・・・「物でつって好感度アップしてアド変えさせるつもり?」とか思われたらどうしよう・・・って。考えすぎでしょうか?何か自信がないので、悪い方向に考えてしまいます^^;

  • 今の日本の選択  

    お世話になっております。 サリジェンヌです。 今、日本は重要な局面にいると思います。 今後の日本は弱者切り捨て型社会にすべきか、 国民皆を導いていくべきか皆様のご意見を伺いたく思います。また、前者の場合は、その方向に進んでいるように見えますが、後者の方向に針路変更したい場合はどうしたらよいとお考えでしょうか? 因みにサリジェンヌは後者派です(↓頑張ってきました(参考までに)) http://oshiete1.goo.ne.jp/kotaeru.php3?q=2254612 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2248694 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2245746 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2265951 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2265951 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2126838

  • 皆さんの名(迷)回答を自慢しちゃってください

    振りかえってみると、私もこのサイトで今まで170回以上の回答をしていました。 さて、おなじみの皆さんも過去の自慢の名(迷)回答を披露してください。 いわば同じ回答でポイントをゲットのWチャンスです!(笑) 私の自慢の迷回答は、まずhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1799142 そして http://oshiete1.goo.ne.jp/kotaeru.php3?q=1696885 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1783673 この質問の複数回答は全てネタと思われたようでポイントは無しでしたが、良い回答が出来たと思ってます。 さらにマジメなものとしてはhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1756616 です。この質問には本当に親身になって回答したつもりだったので、良回答とされた時にはすごく嬉しかったです。

  • 回答者のマナー?

    ここの質問に対する回答 http://oshiete1.goo.ne.jp/kotaeru.php3?q=62568 ここの回答のまるまるコピー! http://oshiete1.goo.ne.jp/kotaeru.php3?q=29341 参考URLぐらい書くべきだと思うんですが・・・ みなさんはどう思われますか?

  • バイトに慣れるまで

    先程http://oshiete1.goo.ne.jp/kotaeru.php3?q=1968599の質問をしたものです。 バイトに慣れるまで普通どの位かかりますか?また、いつごろまでに覚えられないと経営者・バイト仲間に軽蔑されますか?今日からの勤務なので分からないことだらけなんです。今日はなんとか無難に終えれましたが、最後の店閉めの手順がよくわかりませんでした。また、レジもまだ教わっていません。1回教わって理解できなかったことはまた聞くべきですか?それとも、1回で理解できん奴は不要ですか?http://oshiete1.goo.ne.jp/kotaeru.php3?q=1832984上の質問にも目を通して回答して欲しいです。 決して手は抜きません! http://oshiete1.goo.ne.jp/kotaeru.php3?q=1651653でも質問しましたが、不器用なのは相変わらずです。エプロンは問題なかったですが。

  • 教えて!Gooで多くの方のご回答を得るには?

     このサイトで質問をすると時系列に質問が並びます。また各カテゴリー毎に時系列に質問を見ることも出来ます。しかしながら、時間が経過すると古い質問は新しい質問に押され見られにくくなります。  多くの方々からご回答を得る機会を持つために露出度を高める方法はあるのでしょうか。  因みに、100以上の回答(アドバイス)を得てるご質問もありますが、どうして新しい質問が次から次へされるのに形骸化しないのでしょか。 <100以上のご回答を得ているご質問> http://oshiete1.goo.ne.jp/kotaeru.php3?q=272266 http://oshiete1.goo.ne.jp/kotaeru.php3?q=234567 http://oshiete1.goo.ne.jp/kotaeru.php3?q=454545 http://oshiete1.goo.ne.jp/kotaeru.php3?q=186872

  • 「気の措けない」ではありませんか?

    少し前の質問に対して,回答者も(回答者ですら)複数の方が,「気の(が)置けない」という文字をつかっています。 正しい漢字を教えてください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=500397 http://oshiete1.goo.ne.jp/kotaeru.php3?q=836530

  • 別れた彼女と。。。

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1303412 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1302068 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1282920 で質問をしたものです 彼女と別れて一月以上が過ぎました。精神的には辛いですがピークは過ぎたとは思っています。ただ、よりを戻したいと思う気持ちは、前よりも大きくなっています。 彼女とは連絡取れる状態は続いていて、今は付き合えない(彼氏が居るから)とは言われるのですが、自分としてはまだ可能性が有るのじゃないかとは思っています。 こういう場合可能性はあるでしょうか?? 今日彼女と会ったのですがやはり会ってみて思いはまた付き合いたいと思うばかりです。何かアドバイスあればよろしくお願いします<(_ _)>

  • 教えて!goo会員の方へ 「教えて!goo > OKWeb」 にはどうしたらいけますか?

    別カテゴリーでした質問の再掲載です。 私は、教えてgoo会員ですが このURLには教えてgooのトップページのどこからいけますか? http://oshiete1.goo.ne.jp/oshiete.php3?c=517   現在は他の回答の中から偶然みつけてここへきたのです。 誰か教えてください。 前の質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1534871 では 「どうやってもできないと思います。」 と回答を頂いています。

  • タスクでの自動シャットダウンで

    下記のNo.4さんの回答を見て自動シャットダウンを試したところ、プログラムが実行しませんでした。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=540924 そこで、下記のNo.2の回答にあるように、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=508883 C:\WINDOWS\SYSTEM32\SHUTDOWN.EXE -S と、最後に"-S"を付け加えたら実行できるようになりました。 この"-S"って何なんでしょうか? 意味を知っている方教えて下さい。 それと、"-S"以外にも何かこうゆう記号?ってありますか? よろしくお願いします。m(__)m

専門家に質問してみよう