- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 09:52:47 ]
- 文法面での機能拡張しすぎ。
C++の構文解析とか、もうワケワカメ。 マイクロソフト拡張大杉。 gcnew とか使うぐらいなら素直に Java でも C# でもつかえ!!!
- 487 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:18:35 ]
- コンストラクタ/デストラクタっていろいろ応用が利くじゃん
ぶっちゃけ処理はみんな関数じゃなくて関数オブジェクトに分割すべきだと思えてきた そして俺はきっとこの後関数型言語へ流れていく…
- 488 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:19:20 ]
- >>486
一行で、簡潔にどの環境でも起こりうる事を書けば malloc()とfree()で十分伝わると思うが 伝わったから、newとdelete時しかって言ったんだろ? つーかさ、リークはメモリだけじゃないつって>>483に煽り入れるのが間違ってるだろ そもそも、リークさせてるのは>>482なんだから
- 489 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:19:54 ]
- 双方の主張の意味が分からないのは俺だけですか。
RAIIとか自動変数が分からないってことではなく。
- 490 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 11:19:01 ]
- 少なくてもコンストラクタ/デストラクタ無しなんて
ありえないってことは分かったろ? C時代もmallocで確保したメモリをまとめて管理できる ポインタリスト作ってたよ、俺は。
- 491 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 11:53:17 ]
- >>488
>そもそも、リークさせてるのは>>482なんだから 文字列如きでデストラクタ使わないとリークさせちゃう奴なんかいねーよ それともあんたはそうなのかい?
- 492 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:53:09 ]
- >>491
すげー自信だな 文字列如きでリークなんかしねーよなんて口が裂けても言えないなぁ メモリの確保が単純にmalloc()すればいい保証なんて何処にもないし
- 493 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:59:46 ]
- おそらくスタック上にchar string[30];とかしてオーバーランさせまくってんじゃないか
- 494 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:27:13 ]
- 文字列如きでリークさせちゃう>>491が居るから
C++でvectorとかstringとか出来たのにな
- 495 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 13:55:17 ]
- うちにも注意しとけばリークなんて起きないと思ってる爺がいるよ
- 496 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:22:02 ]
- >文字列如きでデストラクタ使わないとリークさせちゃう奴なんかいねーよ
すとりんぐって一応スマートポインタの仲間よね と最近思った
- 497 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:26:56 ]
- 資源管理オブジェクトとスマートポインタは違うんじゃないかと。
逆参照を抽象化するものがスマートポインタなのでは?
- 498 名前:デフォルトの名無しさん [2008/05/01(木) 14:29:50 ]
- いちいち注意してないとリークするWindowsがおかしいんだろ。
おれはLinuxで一度もリークしたことない。
- 499 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:31:51 ]
- ハァ?
アクセス違反ごときでOSごと落ちる窓95の事言ってるのならわかるけどw
- 500 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:32:35 ]
- むしろWindowsとの互換性のためにデストラクタがあるようなもので
Windowsさえなかったらデストラクタは必要なかっただろうな。
- 501 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:33:55 ]
- え??
- 502 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:43:40 ]
- DigitalMars の D ってどうなんかなー
- 503 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:45:37 ]
- >>498
> おれはLinuxで一度もリークしたことない。 「俺は生まれてこの方嘘を吐いたことがない」に負けない位、信用ある言葉だなw
- 504 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:47:00 ]
- 意味わがんねー ネタだとは思うけど
Windowsって確かMFCとかでウィンドウ系オブジェクトはこちらのnewではなく自動の動的生成に任せて ウィンドウとしての寿命の終了に合わせて勝手に破棄される、とか妙なルールあるよね 嫌いじゃないけど。
- 505 名前:デフォルトの名無しさん [2008/05/01(木) 14:54:35 ]
- >>504
わからないならレスしないでください。 Linux使ったことないんだろ?
- 506 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:59:24 ]
- >>503
まぁ、低スキルな自分を「普通」と思いたい人には、その二つが同じような言葉に見えるよね。
- 507 名前:デフォルトの名無しさん [2008/05/01(木) 15:02:35 ]
- そりゃ、こんぴゅーたーがあるにも関わらず、自分の頭でかんりするような高スキルな人とは話があうわけがないw
- 508 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:14:22 ]
- malloc()とfree()って
fjかここは
- 509 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:24:21 ]
- >>507
誰でも何かをこんぴゅーたーにかんりしてもらいつつ、自分でも何かをかんりしてて、 違うのはその内容なんだから、自分のあたまで何かをかんりしてる図そのものを取り出しても、 意味のある返しにはならないなぁ。
- 510 名前:デフォルトの名無しさん [2008/05/01(木) 16:33:03 ]
- 仮に、「俺はデストラクタを書いたことがないからデストラクタが不要だ」と言うならば
「馬鹿は死ね」と言いたい 仮に、「メモリやリソースの管理位、デストラクタを使わなくても出来るだろう」と言うならば 「会社辞めて僧侶になって、鬱で自殺した人たちの供養をしろ!!!」と言いたい
- 511 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:37:58 ]
- 【米国】 中国はわが国の「敵対者」になり得る CIA長官が警鐘
namidame.2ch.net/test/read.cgi/news/1209626659/
- 512 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:38:18 ]
- ↓釣り宣言
- 513 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:39:59 ]
- ↓幼稚な煽り
- 514 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:40:56 ]
- 浜辺で見知らぬおじさんが僕を釣り上げビックリしてた
- 515 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:43:48 ]
- プロセスが落ちても、プロセスが持ってたメモリやリソースを開放しきらない、
昔のWindowsの話をしてる奴が居る予感。 他の人はプログラム上でのリーク、開放してないメモリのアドレスや、リソースのハンドルをロジック的に見失うことについて話してる。 長時間稼働し続けるサービス、デーモン、組み込み系のプログラムでリークは普通に致命的。 プロセス終了時にOSが開放するとか全然関係無い。
- 516 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:56:48 ]
- 1941年12月8日に日本が真珠湾を攻撃し、太平洋戦争が始まると、
ヒトラーはその直後の12月11日の演説で 「我々は戦争に負けるはずがない。 我々には3000年間一度も負けたことのない味方が出来たのだ!」 と日本を賞賛し、アメリカに宣戦を布告した。
- 517 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:05:10 ]
- 「ヒロポンでは戦争に勝てない。」まで読んだ。
- 518 名前:デフォルトの名無しさん [2008/05/01(木) 17:09:27 ]
- Windowsがへぼいからデストラクタが必要になるだけで、コンピューティングの
本質とデストラクタは無縁。 デストラクタはないほうがいいのだから、Windowsに合わせる必要はない。 結果、Windowsを使ってはいけないという結論が出てる。
- 519 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:17:31 ]
- >>518
釣りはいいよ、もう 君だって、デストラクタは使わないにしても デストラクタ的な、xxx_dispose()のような関数作って 使ってるんだろ? 一緒だよ、むしろしょぼいよ
- 520 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:19:20 ]
- >>518
>>515
- 521 名前:デフォルトの名無しさん [2008/05/01(木) 17:21:38 ]
- >>519
> xxx_dispose() これでは語順がおかしいだろう。 人に意見するなら最低限の知識を仕入れてこい。 最低限、Ubuntuくらい使いこなせないと話にならない。
- 522 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:30:39 ]
- >>521
昔のCはクラスや名前空間がないから そういう風に表すのが一般的「だろう」と まあ想像なんだけどねぇ。 例えば、タイマのサービスなら timer_initialize() timer_get() timer_dispose() とか。 あんたさぁ本当にCプログラマ?
- 523 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:34:42 ]
- >>522
スレたいよめ。 知ったか無用。
- 524 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:50:04 ]
- C++規格策定時からあるものでwindowsとか関係ねーし
- 525 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:09:17 ]
- atexit はデストラクタ的だ
- 526 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:46:29 ]
- >>518
あんたの脳内では「デストラクタは無いほうが良い」が不動の真理であるようだが みんな「そんなことないんじゃない?」って思ってるんだから まずはなぜ「デストラクタは無いほうが良い」のかを説明してくれないか。
- 527 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:49:26 ]
- 『僕はデストラクタが無いと文字列操作も出来ないです』
『asprintf() を知らないので、C は怖くて使えません』 ↑これに該当しない人はこのスレにはいないみたいだな…
- 528 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:51:57 ]
- むしろGC無いと組む気がしない
- 529 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:07:28 ]
- 例外あってデストラクタ無いとコードが膨れ上がっちゃうな。
- 530 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:10:20 ]
- >>518 >>527
釣りはよそでやってくれないか。
- 531 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:15:59 ]
- 釣りってことにしないと真っ直ぐ歩けないのかな
- 532 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:18:55 ]
- 何故釣り呼ばわりされるか、自覚無いだろうけど、
相当痛いこと言ってるんだよ、お前は。
- 533 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:28:13 ]
- つまりデストラクタが無いと何も出来ないんだな
そこまで染まっちゃうと冷静な比較も無理だろう
- 534 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:31:18 ]
- >>531
釣りってことにしないと、ホントの本気で馬鹿にするしかなくなるからでは?
- 535 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:38:50 ]
- デストラクタ君もデストラクタが無いなんて有り得ないの一点張りでしょ。
もともとまともな会話が始まる余地が無い。
- 536 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:43:14 ]
- 釣りとかネタとか言う前に地の議論がお寒い。
- 537 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:49:48 ]
- >>536
全体を等しく腐してドロー狙いですか?w
- 538 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:54:22 ]
- いや、あんたの所まで落ちるつもりは無いよ。
- 539 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:55:45 ]
- 盛り下がってまいりました
- 540 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:57:19 ]
- 最早 C++ とは関係が無いな
- 541 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:57:54 ]
- 釣りではなく本気だとしたら、哀れすぎて手が出せない。
- 542 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:59:38 ]
- >>536
機能についての雑談は良いんじゃね?スレタイ的に。 >>537 しょうがないから真面目に相手するよ。 まずRAIIについて軽くググってくれ。 とりあえずそれが代表的なデストラクタの利点だ。 不要と思う理由を頼むよ。 OSは関係無いからね。 それと、ここのスレタイ見て来たC++ユーザーに、 >>527に該当する奴はまず居ないだろう。 初心者スレとかには、そういうのも居るだろうけどね。
- 543 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:02:40 ]
- >>538
お寒い返し乙。 残念だったね一人負けでw
- 544 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:03:46 ]
- javaやC#も採用したってことは必要なんでしょ。
- 545 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:10:23 ]
- C++ がもう少しまともな言語だったら良かったのにとつくづく思うよ。
- 546 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:11:17 ]
- javaとc#にデストラクタは無いよ。
ファイナライズは事実上別物。 ただし、そこを補完するため、 javaはtry-finally、c#はusingが用意されてる。
- 547 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:14:23 ]
- >>545
具体的に書こうぜ。 ただ「駄目」とだけ書くのは誰でも出来る。
- 548 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:26:23 ]
- >>545
誰かが(いずれかの言語が)やってみなきゃならなかったことを やる役だっただけさ。
- 549 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:02:21 ]
- >そこを補完するため、
足りなかったんですね。
- 550 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:02:48 ]
- >>546
なんで無用なものに対して「補完」する必要があるの? 無用なら全く無くしちゃってもいいじゃん。
- 551 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:10:53 ]
- >>549
はい、足りなかったんです。 GCでメモリは回収出来ますが、リソースは無理でした。 >>550 え?なんで無用なの? ファイルとか閉じれないとヤバいでしょ?
- 552 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:13:23 ]
- >>546の途中の改行はミスだから気にしないでね。
文は繋がってるよ。
- 553 名前:デフォルトの名無しさん [2008/05/01(木) 21:29:39 ]
- だからWindowsが糞な実装だから必要になってるだけで、まともな実装では
必要ないだろが。 お前ちゃんとLinux使ってから発言しろよ。 Linuxも使えない雑魚が。
- 554 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:31:01 ]
- >>524
MSC7.0/VC1.0発売は1992年で、結構早い時期に登場したC++コンパイラ、 C++がISO認証されたのはもっと後
- 555 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:36:17 ]
- >>553
なぁ、>>515読んでもOSが関係無いってことが分からないか? それとお前以外がLinux使えないって思い込んでるけど、それも間違い。
- 556 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:37:22 ]
- BSD派だからペンギンは使え(わ)ない。
- 557 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:42:06 ]
- コンストラクタとデストラクタでログ吐くモジュールとか
破棄時に遅延評価を行うプロキシクラスとか デストラクタなしでどうすんの? ファイナライザでやれ、つうのは名前変えてるだけで同じだね。 あ、もしかして デストラクタ(ファイナライザ)の有用性は認めるが そこに資源破棄の役割を持たせる必要は無い、という主張なのかな? 一考には価するかも。
- 558 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:42:14 ]
- >>553
それと、まさか勘違いはしてないだろうけど、 こっちはデストラクタが無いとプログラム組めないとか そういう主張はしてないからな。 ガベージコレクタ無くても組めるのと同様。
- 559 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:43:11 ]
- OS関係ないだろ
寧ろ基幹鯖とかで致命的
- 560 名前:558 mailto:sage [2008/05/01(木) 21:43:44 ]
- 555=558
- 561 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:47:47 ]
- mallocやnewで借りたものは
Win9xですら終了時にプロセス空間ごと更地になるわけで… いつのwindowsの話かと
- 562 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:50:19 ]
- 結局デストラクタは無くても良いという事で全員の意見が一致したなw
- 563 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:51:58 ]
- プロセス終了までリソースを解放しない人は誰ですか?
- 564 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:53:23 ]
- しかし何でWindowsとLinuxを比べてるんだろうか
言語の違いで言うなら、GCのある言語ではデストラクタがほぼ空になるから GCの無いC++を批判する気持ちは分かるんだが…
- 565 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:54:33 ]
- 反論出来なくなったら勝利宣言とは・・・。
釣りじゃなかったら、すごい哀れだな・・・。
- 566 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:57:53 ]
- あれあれ、まだデストラクタが無いとプログラム組めない人が居たのかな?
- 567 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:59:51 ]
- しおり
>>480-566
- 568 名前:デフォルトの名無しさん [2008/05/01(木) 22:00:15 ]
- オブジェクト指向にデストラクタが本当に必要か考えてみるがいい。
Windows使ってると頭おかしくなるのか? なんでここまで説明してやらないとわからないんだろう?
- 569 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:05:20 ]
- オマエより頭が良くて偉い人が必要だと判断したからな
- 570 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:05:45 ]
- for文て何のためにあるの?
while文で十分じゃん
- 571 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:07:11 ]
- いや、末尾再帰の最適化があればそれで十分だ
- 572 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:08:03 ]
- 何故OSが関係無いことを理解出来ないのかが分からない・・・。
シックスセンスじゃないけど、 見たいレスしか見えないんだろうか。
- 573 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:09:38 ]
- デストラクタといえばDのscope(…)文が羨ましい
- 574 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:11:11 ]
- >>570
いやいや。Goto文かJump命令で事足りるぞ
- 575 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:13:28 ]
- asmキーワードでイナフ。
- 576 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:13:33 ]
- >>568
何も説明してないし。
- 577 名前:デフォルトの名無しさん [2008/05/01(木) 22:13:34 ]
- >>572
だからLinuxなら全然問題なく完璧にできるっつってるだろ。 なんでわかんねんだ。 これだからM$信者は駄目なんだよ。
- 578 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:14:02 ]
- >>504
それMFC固有のことで、Windowsは関係ない。
- 579 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:18:46 ]
- UNIXでもLinuxでもWindowsでも、CやJavaで問題無くソフトウェアは作れるけど、
メモリリークしていい理由にも、C++にデストラクタが不要だという理由にもならない。
- 580 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:19:52 ]
- >>577
mallocしたメモリやopenで得たファイルディスクプリタが プロセス終了時にOSが解放したり閉じたりしてくれるということを言っているなら、 Linux/Unixプログラマだって、OSに任せないで 自分で呼んだりデストラクタに任せる奴は当たり前のように存在する。
- 581 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:21:11 ]
- デストラクタをメモリ管理にだけ使っていて、
デストラクタを使わないとメモリリークが止まらない プログラマが居るだけだお!
- 582 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:21:29 ]
- >>577
mallocで10bytr確保したとしよう。どうやってそれを開放するのか教えてくれるかな。
- 583 名前:デフォルトの名無しさん [2008/05/01(木) 22:22:54 ]
- >>582
そんなことも知らないのか。 M$信者は達者なの口だけだな。
- 584 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:27:23 ]
- 教えて!
- 585 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:28:39 ]
- さつき先生!!
- 586 名前:デフォルトの名無しさん [2008/05/01(木) 22:28:52 ]
- 多分free()とかOSが解放してくれるとか言うんだろうな
- 587 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:36:44 ]
- デストラクタ無しだと例外処理とかどうするんだ
|

|