アカウント名:
パスワード:
Cのポインタは、- スカラ値への参照- 配列への参照- 動的オブジェクトの所有権管理- 反復子これら全然違う概念を一個で実現しようとする、そもそも無茶なキメラですよ。
気分を害さないでいただきたいんですが、型キャストやmalloc(そういやそんなもんありましたね)は一瞬も脳裏に浮かびませんでしたよ。ここでいう動的オブジェクトの所有権管理とは、「newで生成したオブジェクトを誰かが必ず一回、そして一回に限ってdeleteすること」以上の意味はありません。自動的にやってくれるなんて期待してませんし、そんなこと書いてないでしょ?Cなら当然プログラマが明示的にdeleteを書くんです。>実現しようとするここを読んでくれない人が何人もいるのでびっくりしました。さらに親コメントにある、>ポインタが理解できてなくても、適切な言語を選べば、動くプログラムを書けるを受けて、プログラマの意図を正確に表現する(メンテナンス性の高い・品質の良いコードを書く)方が、ポインタのメカニズムごときで混乱するよりマシだよ、と言いたかったんですがね。ま、ちゃんとわかってくれてる人もいるし、C++を学んでいれば当然のことなんですが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
まぁ、驚いたのは (スコア:0)
指摘されても問題が何か理解出来ていない編集にはビックリだな
Re: (スコア:2, 興味深い)
自分でプログラミングすることなんか全く無いんでしょうね。
Re: (スコア:1, すばらしい洞察)
ポインタがいまいち理解できない人には朗報だ。
Re: (スコア:0, すばらしい洞察)
それで正しいと思います。
Cのポインタは、
- スカラ値への参照
- 配列への参照
- 動的オブジェクトの所有権管理
- 反復子
これら全然違う概念を一個で実現しようとする、そもそも無茶なキメラですよ。
私はC++使いなんですが、C++なら、状況によって参照やスマートポインタや反復子を使い分けるところです。
理解しようとするとかえって遠回りだと思います。
Re: (スコア:1)
それを云うのであれば、”ポインタは”ではなく、”ポインタと型キャストの併用は”
が正しいと思いますよ。
#知っていれば当たり前の使い方ですけどね。この記事でそういった省略をしてはだめでしょう。
ポインタはただ”アドレスを指し示すだけ”の物。
「動的オブジェクトの所有権管理」は[malloc関数]で確保したメモリを扱う際の話だと思いますが、
その書き方では誤解を招きます。
#私はCの後にC++を学びました。Cのポインタの考え方を理解していれば、C++でもトラブル回避に役立ちます。
Re:まぁ、驚いたのは (スコア:0)
一瞬も脳裏に浮かびませんでしたよ。
ここでいう動的オブジェクトの所有権管理とは、
「newで生成したオブジェクトを誰かが必ず一回、そして一回に限ってdeleteすること」
以上の意味はありません。
自動的にやってくれるなんて期待してませんし、そんなこと書いてないでしょ?
Cなら当然プログラマが明示的にdeleteを書くんです。
>実現しようとする
ここを読んでくれない人が何人もいるのでびっくりしました。
さらに親コメントにある、
>ポインタが理解できてなくても、適切な言語を選べば、動くプログラムを書ける
を受けて、プログラマの意図を正確に表現する(メンテナンス性の高い・品質の良いコードを書く)方が、
ポインタのメカニズムごときで混乱するよりマシだよ、と言いたかったんですがね。
ま、ちゃんとわかってくれてる人もいるし、C++を学んでいれば当然のことなんですが。
Re:まぁ、驚いたのは (スコア:1)
もしかして、(#1324338) の方は(#1323207)の方と同じ方ですか?
気分を害すなんて事はありませんよ。意見を言い合い、理解を深め合うのはよいことだと思いますから。
「実現しようとする」の部分は読んでいますが、”誰が実現しようとしているのか?”
の部分が抜け落ちているので、私は書かれている文面から勝手に推測して読んでしまいました。
>>ポインタが理解できてなくても、適切な言語を選べば、動くプログラムを書ける
>を受けて、プログラマの意図を正確に表現する(メンテナンス性の高い・品質の良いコードを書く)方が、
>ポインタのメカニズムごときで混乱するよりマシだよ、と言いたかったんですがね。
これは、はじめから書いてほしかったですよ(汗)
と云いますか「Cのポインタは~」の部分は書かずに、上記の文だけで良かったと思います。
C++の知識でCのポインタの役割(使われ方)を表現したからこそ、”要らん突っ込み”を受けていますから。
実に残念です…。
「動的オブジェクト~」ですが、私も”自動的にやってくれる”なんて思っていませんよ。
C++でもです。
小さなサイズの変数ならともかく、大規模な(サイズの)変数・領域(仮想メモリマッピングなど含む)
を確保する場合は、管理用のクラスを作ってデストラクタですべて解放するように書いたりしていますから(笑)
#Cでは面倒だったこれら“後始末”が、C++では言語仕様のおかげで使ってわかりやすく・楽に表現できるのが
#とても嬉しかった覚えがあります。もう…えー!もう10年以上昔かい! Borland C++(Turboではない)
#あの頃は仕様が細々アレだったなぁ…。