抽象クラスなんて不要
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/10/22(水) 20:36:10概念上の話はコメントか仕様書にでも書いとけ!
0002デフォルトの名無しさん
2008/10/22(水) 21:21:440003デフォルトの名無しさん
2008/10/22(水) 22:01:180004デフォルトの名無しさん
2008/10/22(水) 22:30:540005デフォルトの名無しさん
2008/10/22(水) 23:16:47擬似コードか何かと勘違いしてるのかw
0006デフォルトの名無しさん
2008/10/23(木) 01:09:00とってもダサイです。
0007デフォルトの名無しさん
2008/10/23(木) 01:45:080008デフォルトの名無しさん
2008/10/24(金) 00:22:48それ抽象クラス関係無い
0009デフォルトの名無しさん
2008/10/24(金) 00:25:320010デフォルトの名無しさん
2008/10/24(金) 00:31:02よし、ポイントゲット
0011デフォルトの名無しさん
2008/10/24(金) 01:19:59何とかならなかったってびゃーねさん言っていた。
0012デフォルトの名無しさん
2008/10/26(日) 15:26:40抽象クラスなら、具体化できない=インスタンスかできない
0013デフォルトの名無しさん
2008/10/26(日) 16:06:00なんとかなってるしな。
インスタンス化したくないなら、他の方法を使えばいいし。
0014デフォルトの名無しさん
2008/10/27(月) 21:43:29/*このクラスのインスタンスは作るな。抽象クラスと思え*/
と書いておけばいい。
0015デフォルトの名無しさん
2008/11/02(日) 11:13:56prototype.jsにもそういうのあるよね。
PythonもNotImplementedError出して抽象だと言い張ってる。
でも、ネイティブコードを吐く処理系では、「概念上の話」じゃないよ。
言語をまたぐRMCではvtblのオフセットを合わせて呼ぶ仕組みがあるから。
vtblレイアウトが標準規格で決まってないC++みたいな言語では
抽象クラスの正しい使い方かと言われると疑問だけど。
0016デフォルトの名無しさん
2008/11/02(日) 11:18:15何とかならなかったんじゃなくて、やりたくなかったんだよ。
VCだったら__abstructキーワードがあるよ。
0017デフォルトの名無しさん
2008/11/02(日) 11:54:17そういやそうだなぁ。
最近Cとかいじってないから忘れてた。
いまの自分にはネイティブコードを吐く言語がいらないから
抽象クラスも不要、ってことか。
やな結論だ。
0018デフォルトの名無しさん
2008/11/02(日) 12:52:45>4のように多態を実現するために使う。
C++0xのconceptなんかは確かにわかりやすさ以外にメリットはないのだけれど、
これがないとひどく難解なコードになるので「なくてもいい」とは思わない。
0019デフォルトの名無しさん
2008/11/02(日) 13:52:54よいツール教えたる
これでガンバリなぁ
http://www.digitalassist.co.jp/pw/page010.htm
0020デフォルトの名無しさん
2008/11/02(日) 14:27:34・決まりを守らない
・ついうっかり
大抵の言語仕様はこれらを防ぐためにある
0021デフォルトの名無しさん
2008/11/02(日) 17:39:44アホか。じゃあpublicメソッドだけでシステム組めって一点のと一緒じゃないか。
ありえないね。ってかこれ立てたのそうとうとしいってるだめpgだろ
0022デフォルトの名無しさん
2008/11/02(日) 18:43:10抽象クラスがないと困る、ってことかもね。
抽象クラスって、部分的な実装のついた
インターフェイスみたいなもんじゃない?
0023デフォルトの名無しさん
2008/11/02(日) 18:59:09そういう言い方ではC++に抽象クラスもありませんが
0024デフォルトの名無しさん
2008/11/02(日) 19:33:28標準では組み込みのabstructキーワードが無いっていうだけの話。
実装を書き加えてコンパイラに怒られないのは汚いといえなくもないけど、
古いライブラリは除いて、普通はそんなことしない。
0025デフォルトの名無しさん
2008/11/03(月) 00:23:36インタフェースを継承しながら実装側は
has-a関係で委譲メソッドを使いまくって事実上の多重継承のようにしてしまえば
確かに抽象クラスは無くても。
002625
2008/11/03(月) 00:27:15method1();
}
interface I2 extends I1 {
method2();
}
class C1 implements I1 {
method1() { ... }
}
class C2 implements I2 {
I1 i1 = new C1();
method1() { i1.method1(); }
method2() { ... }
}
て感じ。
0027デフォルトの名無しさん
2008/11/03(月) 11:30:100028デフォルトの名無しさん
2008/11/03(月) 14:12:01普通はそのための小細工をなんかするけど。
できなければファクトリ側でやる。
0029デフォルトの名無しさん
2008/11/24(月) 15:47:59って書いたら
virtual result_type func_name(argument_types...) =0;
になるようにプリプロセッサを改造して使ってるよ(^^v;
0030デフォルトの名無しさん
2008/11/27(木) 13:08:310031デフォルトの名無しさん
2008/11/27(木) 17:29:410032デフォルトの名無しさん
2008/11/30(日) 01:25:060033デフォルトの名無しさん
2008/12/08(月) 16:21:060034デフォルトの名無しさん
2008/12/08(月) 20:04:09具体例を公開してくれ
そしたらじっくり検討するからたのむぜっ
0035デフォルトの名無しさん
2008/12/08(月) 21:13:33そしたらじっくり検討するからたのむぜっ
0036デフォルトの名無しさん
2008/12/08(月) 21:20:23アホ暴露。
そんなこというなら抽象クラスどころかオブジェクト指向なんか無くてもプログラムは書ける。
むしろ、速度、サイズいずれのコード品質においてもそちらの方が有利
オブジェクト指向は人間にとってのみ意味がある。もっと言えば、生産性と保守性以外意味はない
んな基本ぐらい理解しとけやバカタレ
0037デフォルトの名無しさん
2008/12/08(月) 21:22:50何が何でも、抽象クラスを使わなければならないような事例はないと思う。
共通の親クラスを持ち、またTemplate Methodを実現したい場合、
抽象クラスにしておくと、未実装の際に発見しやすくなるかなとは思う。
その程度かな。
0038デフォルトの名無しさん
2008/12/09(火) 09:58:10意味を明示できるってのがメリットだわな。それによって、「見つけやすい」という嬉しい副作用が得られるわけで。
あと、その程度って言うが、テンプレートメソッドは最も重要なデザパタのひとつ。これ一つで充分過ぎるくらい価値があると思うよ。
0039デフォルトの名無しさん
2008/12/09(火) 11:23:12イベントが複数ある状態機械なんて、抽象クラス無しでどう書くの?
状態を enum で定義して switch 文いっぱい書くの?
0040デフォルトの名無しさん
2008/12/09(火) 11:43:21正規表現のハードコードみたいなの。
0041デフォルトの名無しさん
2008/12/09(火) 12:03:110042デフォルトの名無しさん
2008/12/09(火) 12:16:060043デフォルトの名無しさん
2008/12/11(木) 16:19:22class Hoge
{
virtual void func(void) abstract;
}
0044デフォルトの名無しさん
2008/12/12(金) 11:57:54ttp://msdn.microsoft.com/ja-jp/library/z8ew2153(VS.80).aspx
| The following sample shows that sealed is valid in native compilations:
| The following sample shows that override is valid in native compilations:
| The following sample shows that abstract is valid in native compilations:
ホンマや。
0045デフォルトの名無しさん
2008/12/12(金) 22:44:590046デフォルトの名無しさん
2008/12/13(土) 01:39:320047デフォルトの名無しさん
2008/12/14(日) 22:32:03大規模な開発を経験すると、
言語仕様でサポートされていることの ありがたみが分かってくるよ
マジで
0048デフォルトの名無しさん
2008/12/17(水) 16:17:580049デフォルトの名無しさん
2008/12/19(金) 13:32:03ふーん。じゃ、ポリモーフィズムの概念のない、ステートマシン作成言語とも言えるHDLでステートマシンが書けないとでもおもってんのかお前。
0050デフォルトの名無しさん
2008/12/19(金) 23:42:15005139
2008/12/20(土) 02:31:33抽象クラスが無いとステートマシンが書けないなんて言ってないよ。
たとえば switch いっぱい書けば書けるけど保守性に問題が出てくるから、
そういう問題を解決するために抽象クラスが必要でしょ、って話。
HDL がどうなってるかは知らない。
0052デフォルトの名無しさん
2008/12/20(土) 02:37:21俺は修行が足りないから色々思いつかないけど。
0053デフォルトの名無しさん
2008/12/20(土) 19:12:100054デフォルトの名無しさん
2008/12/20(土) 22:27:31■ このスレッドは過去ログ倉庫に格納されています