トップページ⇒tech
1001コメント314KB

JavaやったらC++はきもく感じる

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/01/10(水) 19:07:35
なにこれ。
int(100)とかだっさー(笑)int&なんてきんもーっ★って感じなんだけど。
標準で使えるスレッドもないしさ。バッドノウハウだらけの
使えない気持ち悪い言語だよなこれ。前時代の人たちはほんとにこんなモノで開発してたのか。
マジご愁傷様です。
C99のほうがまだ拡張性が高くていい感じになってるのが皮肉だね。
0783デフォルトの名無しさん2007/02/06(火) 21:04:03
>>764
はファインマンの改変コピペ。
0784デフォルトの名無しさん2007/02/06(火) 21:35:04
ファインマンあげ
0785デフォルトの名無しさん2007/02/06(火) 23:00:04
>>782
漏れの周りではC++がキモいのは同意だったりするが、
VB厨はJava厨よりも居丈高でイヤンな状態だったりするが・・・。
0786デフォルトの名無しさん2007/02/06(火) 23:04:54
>>757
儲かるのか。会社にとっては儲かるだろうけど、
エンジニアは絶対に儲からないなw
0787デフォルトの名無しさん2007/02/06(火) 23:08:18
>>758
すでにJava Cardはあるだろ。
大日本印刷がJava CardとFelica両方を
搭載したカードを製造販売している。


地方によっては、住民基本台帳カードにJavaCardを搭載している
ところもある。

国内ではほかにもいくつか事例はあるが。

海外だと、台湾やカナダの国民健康保険証がJavaCard搭載になってる。

0788デフォルトの名無しさん2007/02/06(火) 23:09:59
>>759 >>761
いつの時代の煽りだ。
何年前にマ板でその煽り文句を見たことがあるぞ。

もう免疫ができているので煽り効果薄いぞ。


>>763
mixin? Mix Juiceなら知っているが
0789デフォルトの名無しさん2007/02/06(火) 23:12:32
JavaCard って口語ではちょっと略して「Ja馬鹿」とかって呼ぶの?
0790デフォルトの名無しさん2007/02/06(火) 23:16:06
>>764 >>771 >>774
? これもまた昔の煽りだな。しかし、昔ほどの勢いを感じられない。
Java叩きも随分と大人しくなったもんだ。

>>783
なるほど

>>765
だよな。サーバ関係ではとくに。仕様書かかないといけないから。
携帯電話開発だと、相変わらず世界が違うみたいだがw
というとまた逆ギレされそうだが。

>>768
ここはマ板かw そういうのはマ板でやるネタだろw
でないとお前、女にモテなくなるぞ。

>>782
まあそう怒るなw
0791デフォルトの名無しさん2007/02/06(火) 23:16:24
>>789
Ja場角だろ
0792デフォルトの名無しさん2007/02/06(火) 23:16:43
邪馬門
0793デフォルトの名無しさん2007/02/06(火) 23:17:04
>>789
親父ギャグw
0794デフォルトの名無しさん2007/02/06(火) 23:19:53
ボーイングが採用したリアルタイムJavaの理由
http://www.itmedia.co.jp/enterprise/articles/0507/02/news001.html


Javaもここまで進化しているものだ
0795デフォルトの名無しさん2007/02/07(水) 03:12:39
>788
mix-in(ミックスイン)でググれば解るかもね。
0796デフォルトの名無しさん2007/02/07(水) 03:42:27
C以上の自由度で、C++以下の変態度で、Javaが敵わないようなバイナリを吐く、所謂普通の言語ってないだろうか。
0797デフォルトの名無しさん2007/02/07(水) 04:02:05
>>796
OCamlでもやっとけ
0798デフォルトの名無しさん2007/02/07(水) 04:07:27
でも関数ってだけで変態なイメージが。
0799デフォルトの名無しさん2007/02/07(水) 04:20:25
プログラマってだけで変態なイメージが><
0800デフォルトの名無しさん2007/02/07(水) 05:54:06
>796
D言語あたりが目指すのはその辺じゃねーの?
0801デフォルトの名無しさん2007/02/07(水) 08:15:30
>>796
アセンブラ
0802デフォルトの名無しさん2007/02/07(水) 08:31:12
>>796
ひまわり
0803デフォルトの名無しさん2007/02/07(水) 08:33:53
ですよね
0804デフォルトの名無しさん2007/02/07(水) 11:56:46
実際はクラス単位よりも関数単位の方が再利用しやすいんだよな〜
0805デフォルトの名無しさん2007/02/07(水) 13:20:06
>804
どっちも分割の仕方次第じゃないか?
0806デフォルトの名無しさん2007/02/07(水) 13:30:40
>>805
もちろんそうなんだが、クラス単位にすると機能が多すぎて、微妙に違う機能が
必要になったりとかすると継承したりしてどんどん複雑になっていくから、
関数単位だと楽なんだよ。
デザインパターンとかいろいろ考えてる人もいるけど、実際の現場では机上の空論なんだよ。
もちろん初めはちゃんと考えて設計しているつもりが、いつの間にか変な進化をとげていたりするんだよな。
0807デフォルトの名無しさん2007/02/07(水) 13:36:58
>>806
なんかソフトウェア作るってよりコーディングが仕事って感じがするなぁ
まぁ学生の俺には関係ないけどね(;^ω^)
0808デフォルトの名無しさん2007/02/07(水) 16:10:33
>>804
単純な機能なら関数のほうが楽だけど手続きや前提条件が増えてくると
やっぱりクラスのほう良いことがある。
Win32APIみたいに関数での再利用を考えると、どうしても
OPEN・初期化→使う→CLOSEみたいな手順を覚えなきゃ
動いてくれない機能が発生してしまう。

>>806
> 微妙に違う機能が必要になったりとかすると継承したりして
> どんどん複雑になっていくから、 関数単位だと楽なんだよ。

関数だとなんで楽なんだ?これを関数でやろうとしたらコピペになってしまうぞ。
「クラス=粒度がでかい」と思ってるなら間違いだぞ。作る人の問題だ。
関数だって数千行の関数作る人がいるし。
0809デフォルトの名無しさん2007/02/07(水) 18:59:20
つかC以上の自由度って、その時点で普通じゃなくね?
0810デフォルトの名無しさん2007/02/07(水) 19:21:36
演算子オーバーロードがない。
インライン関数がない。
継承がない。
その他数え切れないほど。
JavaにもC++にもどちらにも劣る。
Cは今じゃ半世紀前の遺産でありただの基本。
と言うかECでも使ってろよ。
0811デフォルトの名無しさん2007/02/07(水) 19:24:39
809のいう「自由度」と810のいう「自由度」が違う気がする
0812デフォルトの名無しさん2007/02/07(水) 19:28:25
ポインタ以外でCに自由度なんてあったのかww
0813デフォルトの名無しさん2007/02/07(水) 19:36:08
俺ルール:副作用がある関数群はまとめよ
0814デフォルトの名無しさん2007/02/07(水) 19:50:03
>>812
Cプリプロセッサはかなり変態的だと思う。
0815デフォルトの名無しさん2007/02/07(水) 19:58:16
マクロとポインタがあればなんでもできます!

つうか、Cは高級アセンブラなんだから覚えないと駄目だよ。
OSの基本APIだってCから触れるんだから。

個人的にはNetBSDの人たちがやってるような大規模Cプログラムの制御の仕方が気になる。
0816デフォルトの名無しさん2007/02/07(水) 20:34:39
いまどきクラスで構造化できずに、関数ベースとか言ってるのか〜
きっと大域変数だらけのクズコードなんだろうな・・・
日本のプログラミング環境は二十年遅れてる。
0817デフォルトの名無しさん2007/02/07(水) 20:48:44
はっきり言ってイルカよりもマグロの方が頭良いです。人類の知能は1億年遅れてる。
0818デフォルトの名無しさん2007/02/07(水) 21:04:14
そもそも同じ名前の関数でも別々の値を持てればいいだけなのに
スコープ規則が糞だから面倒なことになってんだよな
0819デフォルトの名無しさん2007/02/07(水) 21:27:43
演算子オーバーロードがない言語は文系。
ボンクラが変なことをしでかすからって、文系言語にしてしまってどうするつもりだJavaは。
C#はよくわかってる。
0820デフォルトの名無しさん2007/02/07(水) 21:48:14
>>794

ボーイングってなんでもありだろ。Adaを使ってたり、
機内ネットワークサービスをやって失敗したりと、
割と節操のない会社ってイメージが強いんだが。

JavaOneに参加した人も、あんまり進んでないって言ってるみたいだけど。
ttp://www.javainthebox.net/JavaOneReports/2006SF/0519.html

本当に大丈夫なのかなあ。リアルタイムJava。
0821デフォルトの名無しさん2007/02/07(水) 22:48:47
演算子オーバーロードきんもー★
コードをごちゃごちゃにして誰にも管理できないものを作っちゃう。
ありゃカスグラマの自己満足用機能だろ。
0822デフォルトの名無しさん2007/02/07(水) 23:02:10
演算子オーバーロードじたいは悪くないと思うけど
cinとかcoutの>>,<<はおかしいと思った。

まだC++があまり知られていないころ
coutが使われていて
なんじゃこの記号だらけの変な言語は
って思った。

そういう俺は未だにprintf派
coutの書式指定はトリッキーで好きになれん。

そもそも演算子オーバーロードは
使うことってほとんどないな。
どうしてもあったほうが便利って時だけにすりゃいいし、
前置インクリメントと後置インクリメントを別々に作らないといけなかったり
ちょっと変
0823デフォルトの名無しさん2007/02/07(水) 23:06:16
coutは確かにかなり変態的だな
どっちかというとオーバーロードの使用例っつーかティップスみたいな感じがするが
0824デフォルトの名無しさん2007/02/08(木) 00:40:23
数値計算とか3Dプログラミングとかやってたら、演算子オーバーロードがないなんてありえないだろ。
いらん言うやつはこっちの世界未経験なんだろうなと。
0825デフォルトの名無しさん2007/02/08(木) 02:16:38
演算子がある言語は糞
0826デフォルトの名無しさん2007/02/08(木) 09:03:24
アセンブラでもやってろ
0827デフォルトの名無しさん2007/02/08(木) 10:29:53
演算子のあるアセンブラも当たり前だけどな
mov [edx + ecx*4], eax
みたいなことするし
0828デフォルトの名無しさん2007/02/08(木) 13:23:56
brainf・・・演算子だらけだった
0829デフォルトの名無しさん2007/02/08(木) 14:27:16
>>804
じゃあ、さっさと実用化してくれよ。

仕事じゃ関数型言語なんてろくに使わないし
0830デフォルトの名無しさん2007/02/08(木) 14:29:35
>>806
> >>805
> もちろんそうなんだが、クラス単位にすると機能が多すぎて、微妙に違う機能が
> 必要になったりとかすると継承したりしてどんどん複雑になっていくから、
> 関数単位だと楽なんだよ。
> デザインパターンとかいろいろ考えてる人もいるけど、実際の現場では机上の空論なんだよ。

そりゃおまえんとこの現場が恵まれていないだけ田尾。

> もちろん初めはちゃんと考えて設計しているつもりが、いつの間にか変な進化をとげていたりするんだよな。

まだまだ修行が足りないんだよ。最低でも結城浩本くらい読んで理解すれば
そこそもデザインパターンを使えるようになる。

デザインパターンはJavaの標準APIにも随所に存在しているため、
無意識にデザインパターンについて詳しく知ろうという動きとりやすいのがJavaの利点。


0831デフォルトの名無しさん2007/02/08(木) 14:38:28
>>830
> まだまだ修行が足りないんだよ。
修行が必要なことなら一般プログラマには不可能だな。
0832デフォルトの名無しさん2007/02/08(木) 14:39:33
>>830
そのデザインパターンがすべてのケースを網羅しているわけではないことはGOF本にも書いてあることだがね。
0833デフォルトの名無しさん2007/02/08(木) 15:35:51
>>819
> 演算子オーバーロードがない言語は文系。


クマー
0834デフォルトの名無しさん2007/02/08(木) 15:38:45
>>820
まだまだ進化の余地はある。

家電Java実現が待ち遠しい。

家電製品を自作したJavaプログラムで
操れる日がやってくると期待しているぞ


テレビ、HDDVDレコーダ、アンプ、スピーカーだけでなく冷蔵庫、洗濯機、
炊飯器、電子レンジ、防犯扉すべてをJavaで操るハイテクハウスを実現するのだ。

0835デフォルトの名無しさん2007/02/08(木) 15:39:50
クソセキュリティ扉を作らないようにな
0836デフォルトの名無しさん2007/02/08(木) 15:40:05
勉強のひとつもしないで食っていけるプログラマがいるのか
天才だな
0837デフォルトの名無しさん2007/02/08(木) 15:40:09
>>822
> 演算子オーバーロードじたいは悪くないと思うけど

それもかなり盲目的だね。
無闇に演算子の乱立を防ぐために規格で統一したようなものが
Javaでの演算子オーバーロードを禁止した理由だ。
0838デフォルトの名無しさん2007/02/08(木) 15:41:00
>>824
> 数値計算とか3Dプログラミングとかやってたら、演算子オーバーロードがないなんてありえないだろ。
> いらん言うやつはこっちの世界未経験なんだろうなと。

経験有りだが。おれのソースコード、add(),subtract(),multiply(),divide(),transpose(),norm(),inverse(),det()
だらけだw
0839デフォルトの名無しさん2007/02/08(木) 15:41:07
なんでも闇雲に乱立させて構わないんじゃない?
プロジェクトの中で一貫性が保たれていればいいんだから
0840デフォルトの名無しさん2007/02/08(木) 15:41:15
まだ粘着してるのかおまいは
0841デフォルトの名無しさん2007/02/08(木) 15:41:42
>>831
じゃ演算子オーバーロードでも使ってろw
0842デフォルトの名無しさん2007/02/08(木) 15:42:14
>>832
だからデザインパターンはGoFだけじゃないし
0843デフォルトの名無しさん2007/02/08(木) 15:42:49
>>835
C++で演算子オーバーロードしまくったソフトウェアなら
糞セキュリティ扉を作ることができる。
0844デフォルトの名無しさん2007/02/08(木) 15:44:54
>>839
> なんでも闇雲に乱立させて構わないんじゃない?
> プロジェクトの中で一貫性が保たれていればいいんだから

乱立するのは言語やOSだけにしてくれ。
一つの言語に乱立させるとおかしくなる。
プロジェクトの中だけだろ。
だが、会社の経営陣がいきなり、そのプロジェクトで
使われたプログラムを他社のあっちのソースコードと併合してくれと
いってきたときどうする?

名前空間だけで解決できるか? 無理だろう。

0845デフォルトの名無しさん2007/02/08(木) 19:45:56
C++はCと互換性をとってしまったのが第一の悲劇
それがMSに目をつけられて業界標準言語になったのが第二の悲劇
そして、それに気づかず脳天気に使った開発者は死に、儲かったのはMSだけというのが最後の悲劇

君たちの怨念からJavaは生まれた。やすらかに眠りたまえ。
0846デフォルトの名無しさん2007/02/08(木) 21:54:10
C++の劣化コピーのくせにでかい面すんなよw
0847デフォルトの名無しさん2007/02/08(木) 21:54:34
Sunに儲けさせるのは平気なのだろうか……
0848デフォルトの名無しさん2007/02/08(木) 21:57:49
そうだ!DigitalMarsに儲けさせよう!
0849デフォルトの名無しさん2007/02/08(木) 22:02:08
>>846-848
>>845の言ってることが理解できたの?
思わず日本語でおkってレスしそうになった俺の為に>>845がなにを言ってるのか解説してくれまいか?
08508472007/02/08(木) 22:10:50
>>849
正直何を言いたいのかよくわからなかったが、
「MSを儲けさせるのは良くない」という意図があるのはわかったのでああ書いた

1行目はまだしも2行目は何の業界のことだかわからんし
3行目の「開発者は死に」のくだりは理解不能だねえ
0851デフォルトの名無しさん2007/02/08(木) 23:00:11
じゃぁ、改めて・・・

>>845
日本語でおk
0852デフォルトの名無しさん2007/02/08(木) 23:24:22
でも1行目はあれかな
C++って「C知らないヤツお断り」的な雰囲気があって嫌って意味なのかな
0853デフォルトの名無しさん2007/02/08(木) 23:35:26
>>837
お前が盲目だな
最初の1行を除いて演算子オーバーロードに否定的な発言なのに
0854デフォルトの名無しさん2007/02/09(金) 00:35:59
クラスの定義の仕方がおかしい
0855デフォルトの名無しさん2007/02/09(金) 00:37:30
>>854
kwsk
0856デフォルトの名無しさん2007/02/09(金) 00:40:33
>>844
> だが、会社の経営陣がいきなり、そのプロジェクトで
> 使われたプログラムを他社のあっちのソースコードと併合してくれと
> いってきたときどうする?

そんなありそうも無いことを心配してどうするよ。

バカジャーねーの?
0857デフォルトの名無しさん2007/02/09(金) 01:35:54
>>846
それはC#のことか。なるほど。良く分かる。

>>847 >>850
SunはJavaで全然儲かっていないが。残念だったな。
逆にお前はM$が儲けることになっているようだな。
Javaでお金儲けをしているのはIBMやHP、BEAなどサードパーティだ。
しかもJavaは去年の11月17日、GNU General Public Licenseで
リリースし直された。これがどういうことかわかるか?

Sunを儲けさせる心配もないということがよくわかっただろう。


>>850
俺が代わって改めて聞こう。10年前にC/C++で作ったプログラムを
今正しく動かすことができるか?

0858デフォルトの名無しさん2007/02/09(金) 01:37:14
>>852
> でも1行目はあれかな
> C++って「C知らないヤツお断り」的な雰囲気があって嫌って意味なのかな

そうではないな。コンパイラの互換性が違いすぎること
仕様が乱立しすぎて、その乱立した仕様に従ったソフトウェアやライブラリが多すぎる
こと。それが問題。それにヘッダファイルの扱いも問題有りだ。
未だにグローバル変数を使う奴がいることも。
0859デフォルトの名無しさん2007/02/09(金) 01:43:03
>>853
意味が解らん。

演算子オーバーロードの副作用を防ぐために
Javaでは演算子オーバーロードが導入されていない。という意味だと思うが。

そもそも、Javaに演算子オーバーロードを入れるべきかどうか
という話はもう何年も前から語り尽くされている。他のJavaスレでも
そういう議論は散々あった。
少なくとも、C++と全く同じ仕様の演算子オーバーロードを
Javaに完全移植することだけはやってはならないことだ。
それだけはいえる。

Java5から登場したenum型もGenericsも『完全移植』しなかったから
うまく導入することができた。もしCのenum型そのまんまや、C++Templateの
仕様をそっくりそのままJavaにもってきたら、その言語はJavaではなくなってしまうだろう。
C#に退行し、果てはC++サイドに堕ちる。
0860デフォルトの名無しさん2007/02/09(金) 01:46:18
>>856
> >>844
> > だが、会社の経営陣がいきなり、そのプロジェクトで
> > 使われたプログラムを他社のあっちのソースコードと併合してくれと
> > いってきたときどうする?
> そんなありそうも無いことを心配してどうするよ。
> バカジャーねーの?

馬鹿ジャーねーのだって?
じゃあ、みずほ銀行の、異なる言語、COBOLやFortranが紛れた
あの異なる三つ基幹システムを統合したあの二重引き落とし事件は
なぜ起きたのか説明できるか?


Java開発では、他のプロジェクトで開発したソフトウェアをライブラリのように
統合して新たに製品開発するということは頻繁に起こっているぞ。
もしこれがC++だったら、とんでもないことになって
顧客からの信用を失っていたことだろう。

0861デフォルトの名無しさん2007/02/09(金) 02:13:34
>>837 >>859
かなり盲目とかいっておきながら
>>822では
むしろ演算子オーバーロードは使うこと少ないと書いてあるだろ。
演算子の乱立なんか進めていないだろ。
Javaに演算子オーバーロードなんて進めていないだろ。
なんで勝手に話ふくらませてんだよ。

Javaだってa=-(5+6);をa = new int(-1.times(5.plus(6)));なんてしないだろ。
5+6ぐらい自然なことなら演算子オーバーロードもいいかもしれなあってことだよ。
でも
実際によく見かける演算子オーバーロードはcin,coutとか変なのだよな。

それと
演算子オーバーロードって前置インクリメントと後置インクリメントの
両方作らなきゃいけないし+つくったら+=も欲しくなるし
結局面倒くさいから最初興味があって遊ぶだけで作らないよなってことだよ。
0862デフォルトの名無しさん2007/02/09(金) 03:55:29
プログラムを書かない奴にC++より愚劣な言語がJavaより有能だという事を知らしめなければならない。
0863デフォルトの名無しさん2007/02/09(金) 04:01:56
>>860
COBOLに罪無し。
0864デフォルトの名無しさん 2007/02/09(金) 05:42:24
俺はJAVAやってC++やって、再度JAVA勉強再開したらクラス内のメンバ
がprivateなのかprotectなのかpublicなのかを明示しなくても良いのに改めて驚いた
かつ、C++のprivateやprotectやpublicのラベルの便利さに感心した
ま、それで俺の意見としては、JAVAはJAVAで良いところも悪いところもあるC++も同様。
言語なんて、なにをするかによって、最適な言語を選ぶべきだから
ちなみにVBをちょっとかじったら、セミコロンを付けない仕様がきもく感じた。
でもVBでプログラミングをしてきた人にとってはセミコロンはきもく感じるだろう。
ついでにC#を勉強しだしたが、プロパティやインデクサに抵抗を感じた。
かつ、クラスを作るとき継承関係はclassの頭で宣言する形にC++に慣れた俺はびっくりした。
あとPerlは、もう、ビックリ。でもPerlでプログラミングを勉強したなら、C言語はわけわからんと思う。
ま、要はそれぞれ言語には、その言語を使う理由としての環境によるものだろうと思います。
だから、この言語をやったらこの言語はきもいって感じても、勉強していくうちに慣れていく。
そして、混乱しだす。
0865デフォルトの名無しさん2007/02/09(金) 05:44:44
それでも Javaの良いところ >>>>>>>> C++の良いところ なんだよな
0866デフォルトの名無しさん2007/02/09(金) 07:48:31
それでも Javaの限界 >>>>>>>> C++の限界 なんだよな
0867デフォルトの名無しさん2007/02/09(金) 08:17:26
それをいうなら機械語の限界が最強
0868デフォルトの名無しさん2007/02/09(金) 08:42:41
Javaの生産性 > C++の生産性 >>>>>>>> アセンブリ言語の生産性
アセンブリ言語の限界 < C++の限界 <<<<<<<< Javaの限界
0869デフォルトの名無しさん2007/02/09(金) 08:45:17
Ruby やれよ Ruby を
0870デフォルトの名無しさん2007/02/09(金) 08:45:40
>>864
しょっぼっい感想だな。そんな表層的なことでグダグダいってるんじゃねーよ
個人で開発するなら、SchemeでもHaskellでもHSPでもすきなのを使えばいいんだよ
問題は大規模化、長期化だ。これはスケーリングの問題だ。
0871デフォルトの名無しさん2007/02/09(金) 09:58:30
Java信者にあまりに必死な奴がいてキモい……
0872デフォルトの名無しさん2007/02/09(金) 10:40:16
うっせバカはげカス市ね
0873デフォルトの名無しさん2007/02/09(金) 11:44:04
関西ならアホボケカスなのにね。馬鹿だね
0874デフォルトの名無しさん2007/02/09(金) 14:25:48
>>861
> >>837 >>859
> かなり盲目とかいっておきながら
> >>822では
> むしろ演算子オーバーロードは使うこと少ないと書いてあるだろ。

そのくせ演算子オーバーロードをマンセーしている馬鹿は一体何なんだろうな。


> 演算子の乱立なんか進めていないだろ。
C++では容易に演算子オーバーロードを勧めることができるし、多くの演算子マンセーしてる奴は
副作用について何も考えていない。

開発コミュニティの統合や企業の吸収合併についてろくに考えていないことが良く分かる。
バブル時代で脳みそがとまってるんじゃないかと疑いたくなるね。
オープン化の波に逆行して溺れているジジイみたいだ。

> Javaに演算子オーバーロードなんて進めていないだろ。
> なんで勝手に話ふくらませてんだよ。

マンセーしているやつがいるからだろ。

> Javaだってa=-(5+6);をa = new int(-1.times(5.plus(6)));なんてしないだろ。
> 5+6ぐらい自然なことなら演算子オーバーロードもいいかもしれなあってことだよ。

java.lath.BigIntegerとjava.math.BigDecimalを知らないのか。
Jakarata Commons Math のMatrixクラス、Complexクラスを知らないのか。


0875デフォルトの名無しさん2007/02/09(金) 14:27:58
>>864
> 俺はJAVAやってC++やって、再度JAVA勉強再開したらクラス内のメンバ
> がprivateなのかprotectなのかpublicなのかを明示しなくても良いのに改めて驚いた
> かつ、C++のprivateやprotectやpublicのラベルの便利さに感心した


そいつは釣りかね? それともタダの無知なのか?

『アジャイルソフトウェア開発の奥義』を読めばお前はいかに頭が悪い発言を
しているかがよくわかるぞ。

0876デフォルトの名無しさん2007/02/09(金) 14:28:51
>>871
C++ハゲ信者もどうかと思うけどね。
ザビエルみたいだ
0877デフォルトの名無しさん2007/02/09(金) 14:35:33
>>861
>両方作らなきゃいけないし+つくったら+=も欲しくなるし
まず operator+= を実装してからそれを利用して operator+ を実装するのが定石

MyNumber MyNumber::operator+(const MyNumber& rhs) const
{
  MyNumber tmp(*this);
  tmp += rhs;
  return tmp;
}
0878デフォルトの名無しさん2007/02/09(金) 15:52:41
>>861
>なんで勝手に話ふくらませてんだよ。
病気なんだろ。

>5+6ぐらい自然なことなら演算子オーバーロードもいいかもしれなあってことだよ。
んー、でも自然に見えるのって、代数的なクラスくらいだよなあ。

>>874
>マンセーしているやつがいるからだろ。
じゃそいつに言えば?
0879デフォルトの名無しさん2007/02/09(金) 16:56:11
Javaで実装するとしたら
//MatrixOperator.java
package my.package.alg;
import my.pacage.Matrix
public algebra MatrixOperator{
  //staticと書かなくてもstaticメソッド
  //適宜命名可能な名前に置換(operatorにhashCode("+=")を付加したもの)
  public void operator+=(Matrix dest,Mat rhs){
    dest.add(rhs);
  }
}

//Foo.java
package my.package;
import static my.package.alg.MatrixOprator.operator+=;
public class Foo{
  public void bar(Matrix s,Matrix t){
    //MatrixOperator.operator+=(s, t);に置換
    s += t;
  }
}
0880デフォルトの名無しさん2007/02/09(金) 16:56:48
Javaで実装するとしたらこんな感じ?と書こうとして失敗した……
0881デフォルトの名無しさん2007/02/09(金) 18:31:03
>>877
operator +=からoperator +を作るのは定石だけど、
2つを定義するという点では861の主張がそう変わるものではないと思う。

まあBoost.Operatorsで多少楽はできるけど。
0882デフォルトの名無しさん2007/02/09(金) 18:40:23
Java で演算子オーバロード付けるとしたら
Calculatable(名前テキトー)インタフェースとか作られるんかな
■ このスレッドは過去ログ倉庫に格納されています