とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

『三田典玄の「体育館の裏話」 - 関数の話(7)』につっこむ(2)

トラバいただきました。感謝。
[´・[ェ]・] <もももっもっ

あれ、いつの間にかVB6.0講座になってるよ?

あっー!そういうことでしたかっ。

実は、C言語ってのは、その言語をよく知っている人にとっては、それができた最初から「オブジェクト指向」的プログラミングが可能になっていたのだ。

これはきっと、C言語を使ってオブジェクト指向パラダイムの、新しい言語を作れるって事を言いたいんだよね!

決してC言語オブジェクト指向がやれるって言いたいわけじゃないよね!

「新しい言語を作れる」って方は同意だけど,後半は同意しかねるなぁ。
C言語オブジェクト指向言語ではありませんが,C言語でもオブジェクト指向プログラムできます。構造体をクラスのように(プログラマの多大の努力と,それなりの妥協で)扱えます。ですから,

ところで、

C言語でも関数へのポインタを用いて多態を実現できます。

http://d.hatena.ne.jp/RiSK/20071121/1195613818

これって、コールバック関数の事……だよね?ね?[´・[ェ]・]

ちゃんとvtableを作って(継承もできるし)多態も実現できますし,宣言と定義を工夫してアクセス制御(public, protected, private)も実現できます。これだけできれば,C言語でもOOPできると(氏のように)言えると思います。
もっと言っちゃえば,マクロを使って(テンプレートは難しいですけど)ジェネリックも実現できますし,例外も(setjmp, longjmpを使って)実現できますし,スレッドも(実験したことないですけどsetjmp, longjmpを使って)作れるので今流行りの(?)並列処理もできます。ですから私は,C言語は究極のマルチパラダイム言語だと思っています。手続き型だろうが,オブジェクト指向だろうが,メタだろうが,関数型だろうが並列だろうが,何でもかかってこいって感じです。そのうち,関数を返すとか,クロージャがどう,とかもやってみたいと思ってたり。C言語を偏愛する変態の戯れ言でした。