X



業務でにわかプログラミングやってんだが「クラス」ってこれ必要か?関数でいいじゃん
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/20(月) 18:27:12.56ID:jTM0wlvZ0?2BP(2072)

functionで出来ることをイキってクラスとか難しくしてんの?
NewとかOverridesとかInheritsとか覚えれんわ使いも千野に


NexSeed、小中高生向けのプログラミング×英語スクール「ヴィムテックキャンパス by NexSeed」を9月3日に開校
https://edtechzine.jp/article/detail/1271
0386名無しさん@涙目です。(茸) [US]
垢版 |
2018/08/22(水) 19:12:24.15ID:ZBO7S0bL0
「継承」ってのが未だによくわからん。
いや、概念は分かるんだけど、使い所がわからんと言うか、一度も使ったこと無い・・・
0388名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 19:17:31.70ID:5goOVc7H0
継承はあまり良いパターンじゃないと思うぞ
is-aよりhas-aにしたほうが良い
0390名無しさん@涙目です。(禿) [US]
垢版 |
2018/08/22(水) 19:22:03.12ID:wxBLSuxs0
俺のわかりやすいポインタ

◆ポインタがない場合の荷物配送
倉庫→俺んち→転売先

◆ポインタがある場合の荷物配送
俺→倉庫に「転売先の住所(ポイント)はここ」と教える
倉庫→転売先
0391名無しさん@涙目です。(北海道) [US]
垢版 |
2018/08/22(水) 19:23:41.14ID:OaotwKs00
>>386
MFCで言うなら

CDialog がダイアログの表示、移動、閉じるとかの基本的な動作を持つクラス

class CXXXDlg : public CDialog

で上記のダイアログの基本的な動作を持ちつつ、必要な処理を付け加えることができる
0394名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/22(水) 19:43:31.74ID:6GTWWoGu0
>>386
見積書と受注書に共通する処理はないか?
あるならそれは、個別に定義するのではなく、
じょういクラスの帳票に定義して継承すれば良いのではないか?
0395名無しさん@涙目です。(空) [ニダ]
垢版 |
2018/08/22(水) 19:50:25.71ID:lOdPOV9x0
>>386
聖闘士クラスってのがあって、


ブロンズやシルバー、ゴールドは所詮そこから派生したもの。なら聖闘士クラスを継承して、ゴールド聖闘士クラス作ればいいじゃん。

っていうこと
0396名無しさん@涙目です。(庭) [CN]
垢版 |
2018/08/22(水) 20:03:40.47ID:MstfEzYO0
>>362
そもそもCのポインタの難所とされるのは文法のせいだから


int const * const * p;
const int * const p;
const int * const * const p;

みたいなぱっと見では修飾関係の謎なやつら
0398名無しさん@涙目です。(やわらか銀行) [ニダ]
垢版 |
2018/08/22(水) 21:20:30.52ID:yhw5XRvm0
>>382
そうやって作ったルールは年月とともに忘れ去られ、ドキュメントも失われ、メンバーも入れ代わり、その場しのぎで拡張した機能のせいでソースコードが魑魅魍魎になる。
そういうプロジェクトを幾つも経験すると、結局はCの基本機能やライブラリででできることは素直にそれを使うべきと考えるようになる。
0399名無しさん@涙目です。(家) [KR]
垢版 |
2018/08/22(水) 22:11:55.54ID:8JCS1IUl0
>>386
そりゃそうだ
それは実用の観点から考案や実装されてんだから
机上で学ぶ時には仕組みを理解できても有用性なんて分からなくて当たり前
だけどこの手の職種は性格悪い奴が多いから単なる経験値の違いでマウント取って悦に入る
それを初学者がプレッシャーに感じてるだけ
複数人、大規模、継続的な運用、公に公開とかを経験するうちに理解するから安心しろ
0400名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/22(水) 22:33:53.88ID:pfaks+9e0
>>396
それ分けわからんよなあ
学習サイト血眼で何度も読んでようやく理解って感じだったわ
でもC++でそれをしばらく使わないと忘れてしまうという

えーと、この場合はポインタ(アドレス)が定数で、ポインタのアドレスに
書き込んである値は定数じゃなくて、この場合は値も定数で…
…そして、頭爆発寸前という
0402名無しさん@涙目です。(新疆ウイグル自治区) [GB]
垢版 |
2018/08/22(水) 22:42:24.69ID:DY/XVFtP0
C++なんてのは、プログラマの脳を破壊する黒魔術になっているからあんなものは捨てろ。
機能がたくさんあればいいってもんじゃねーんだよ。

やろうと思えば+演算子で引き算もできてしまうような言語など要らぬ!
0403名無しさん@涙目です。(東京都) [KR]
垢版 |
2018/08/22(水) 22:53:55.55ID:pfaks+9e0
>>402
C++は自由過ぎてカオスなんだよな

もっとカオスがC++/CLI、ヒープ領域がアンマネージドとマネージドに分かれているという
アンマネージドに確保する場合はnew、マネージドの場合はgcnewと使い分ける
0404名無しさん@涙目です。(やわらか銀行) [US]
垢版 |
2018/08/22(水) 23:19:30.04ID:YOVDE6/i0
オブジェクト志向は良いんだけど、
継承(しすぎ)はあんまりオススメしない。
作りやすい(同じコードを2回書かなくて済む)が
読みにくい(どのコードがどの順番で実行されるか
直感的にわかりにくい)。
結果、保守性が下がる。

誰かが書いたコードを別の誰かがメンテする。
その前提で作ると、多重継承とかやりすぎない
方がいい。
わかりさすさは冗長さより優先すべき。
0408名無しさん@涙目です。(神奈川県) [JP]
垢版 |
2018/08/23(木) 06:35:23.35ID:77mmYEBL0
>>407
要は

人間クラス
身長プロパティ
体重プロパティ
年齢プロパティ
性別プロパティ
筋力プロパティ
食べるメソッド
寝るメソッド
走るメソッド
跳ぶメソッド
うんこをするメソッド
etc.
クラス終わり

聖闘士クラス
人間クラスを継承
クロス階級プロパティ
星座プロパティ
コスモプロパティ
コスモを燃やすメソッド
コスモを感じるメソッド
etc.
クラス終わり

こんな感じやろか?
0410名無しさん@涙目です。(dion軍) [US]
垢版 |
2018/08/23(木) 10:11:15.68ID:Qe838kFj0
仕事で他人の書いたコードをたくさん見るが、クラスにしてかえって読みにくくなってしまってるのはよく見る。
センスの良い人が書いたのはそんなこと無いけど
0411名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/23(木) 11:06:29.72ID:/qA3cKqq0
>>407
キャラクタークラスが人間インターフェースと聖闘士インターフェースのプロパティを持つんじゃね

キャラクタークラスのインスタンスとして星矢

星矢is人間 且つ 星矢is聖闘士

聖闘士インターフェースを持つ抽象クラスを継承して
ブロンズ、シルバー、ゴールドを作る

星矢からブロンズやゴールドのクラス
から作ったインスタンスを
星矢が持っているプロパティから参照すれば
星矢はブロンズにもゴールドにもなれる
0414名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/23(木) 11:27:33.80ID:c0QG4JBc0
キャラクタークラスから犬インターフェースを参照すれば
犬の聖闘士キャラができる
0415名無しさん@涙目です。(庭) [US]
垢版 |
2018/08/23(木) 11:36:07.99ID:c0QG4JBc0
犬キャラの名前は銀
0417名無しさん@涙目です。(京都府) [EU]
垢版 |
2018/08/23(木) 12:13:09.85ID:+LLKISFF0
>>371
名前空間はクラスの親玉って思ってる

関数や変数を複数まとめたクラスってのあって

そのクラスをさらにジャンル別にまとめたところの総元締めが名前空間
0421名無しさん@涙目です。(SB-iPhone) [US]
垢版 |
2018/08/23(木) 15:24:56.49ID:X4eWU6R+0
名前空間がかなり柔軟な言語ってある?

Pythonの引数名指定のメソッド呼び出しの、引数名を文字列で動的に変えれたり、クラス名の文字列の一部を文字列のリストで動的にしたり。
0422名無しさん@涙目です。(大阪府) [DE]
垢版 |
2018/08/23(木) 15:49:19.45ID:syAj3CEW0
純粋なオブジェクト志向で書こうとすると糞コードを生産してしまう残念プログラマだが、Classは必要だわ。
メソッドだけだとごちゃごちゃになる。部屋の整理を考えてみろ。小物入れだけじゃ部屋は整理整頓できん。
あ、関数型言語は知りません。
0424名無しさん@涙目です。(禿) [DE]
垢版 |
2018/08/23(木) 15:54:09.45ID:kAVUB+sE0
時代遅れのオブジェクト指向おじさん「クラスは必要」
0425名無しさん@涙目です。(禿) [DE]
垢版 |
2018/08/23(木) 15:57:50.81ID:kAVUB+sE0
オブジェクト指向の概念を産み出したアラン・ケイはC++はオブジェクト指向では無い!と断言してたな
0426名無しさん@涙目です。(大阪府) [GB]
垢版 |
2018/08/23(木) 16:03:56.93ID:ASH3bUs10
クラスなんていらん。
C言語ににメンバー関数とコンストラクタとデストラクタとインヘリタンスとポリフォーミズムとオーバーライドとオーバーロードとエクセプションとテンプレートとラムダさえ追加してくれるだけでええ。
0433名無しさん@涙目です。(禿) [DE]
垢版 |
2018/08/23(木) 18:04:40.68ID:kAVUB+sE0
>>410
今もてはやされてる関数型プログラミングはそのオブジェクト指向プログラミングの欠点を克服するためのものなんだよね
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況