業務でにわかプログラミングやってんだが「クラス」ってこれ必要か?関数でいいじゃん

■ このスレッドは過去ログ倉庫に格納されています
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

0385名無しさん@涙目です。(大阪府) [ニダ]2018/08/22(水) 19:09:35.05ID:am7vAyP+0
>>349
ファイルのキャッシュとかの恩恵の説明が無いと意味がわからないんじゃないかな

0386名無しさん@涙目です。(茸) [US]2018/08/22(水) 19:12:24.15ID:ZBO7S0bL0
「継承」ってのが未だによくわからん。
いや、概念は分かるんだけど、使い所がわからんと言うか、一度も使ったこと無い・・・

0387名無しさん@涙目です。(大阪府) [ニダ]2018/08/22(水) 19:17:11.46ID:am7vAyP+0
>>386
同じものを2回作るのは面倒
作られた資源を再利用するような考え
しかも、序列があるので構造的に綺麗

ごめん 説明する自信ない

0388名無しさん@涙目です。(やわらか銀行) [US]2018/08/22(水) 19:17:31.70ID:5goOVc7H0
継承はあまり良いパターンじゃないと思うぞ
is-aよりhas-aにしたほうが良い

0389名無しさん@涙目です。(大阪府) [ニダ]2018/08/22(水) 19:19:15.74ID:am7vAyP+0
メンバーでクラスを持つ!

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

で上記のダイアログの基本的な動作を持ちつつ、必要な処理を付け加えることができる

Servletを使うと、問答無用でHttpServletを継承させられることになるな
習うより慣れよとはいうが、
わからないなりにいじってみるってのもやり方としてはアリなんじゃね

0393名無しさん@涙目です。(東京都) [VN]2018/08/22(水) 19:25:58.79ID:5Et1/XLj0
>>386
アクションとかシューティングゲーム作るときに便利

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;

みたいなぱっと見では修飾関係の謎なやつら

void (*signal( int sig, void (*func) (int) )) (int);
標準ライブラリがこんな暗号みたいなんじゃ、
そりゃ「Cのポインタは難しい」といわれてしまうわな。

>>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++でそれをしばらく使わないと忘れてしまうという

えーと、この場合はポインタ(アドレス)が定数で、ポインタのアドレスに
書き込んである値は定数じゃなくて、この場合は値も定数で…
…そして、頭爆発寸前という

0401名無しさん@涙目です。(dion軍) [ニダ]2018/08/22(水) 22:39:30.86ID:MsOp4jKM0
>>386
C#で8割くらい共通だけど2割くらい違う画面ってのを複数作ってたら継承の優位性が分かってくるんじゃないかと思う
共通2割、個別8割でもいいけど

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回書かなくて済む)が
読みにくい(どのコードがどの順番で実行されるか
直感的にわかりにくい)。
結果、保守性が下がる。

誰かが書いたコードを別の誰かがメンテする。
その前提で作ると、多重継承とかやりすぎない
方がいい。
わかりさすさは冗長さより優先すべき。

0405名無しさん@涙目です。(dion軍) [US]2018/08/22(水) 23:32:58.80ID:eLkPafyO0
>>403
C++/CLIはなんの為に作られた言語か知らんけど
C++からC#呼ぶ時とかのラッパーにしか使ってないわ

0406名無しさん@涙目です。(茸) [AU]2018/08/23(木) 03:53:53.45ID:/Jl0Pbyk0
継承とか演算子のオーバーロードとか要らんからクラスだけ追加したC+位のが欲しいんだけど。

0407名無しさん@涙目です。(東京都) [CN]2018/08/23(木) 06:19:56.94ID:f0E+wwbH0
>>395
それだとシルバー聖闘士やブロンズ聖闘士は一生ゴールド聖闘士になれないけどあってる?

0408名無しさん@涙目です。(神奈川県) [JP]2018/08/23(木) 06:35:23.35ID:77mmYEBL0
>>407
要は

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

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

こんな感じやろか?

0409名無しさん@涙目です。(公衆電話) [US]2018/08/23(木) 07:46:37.24ID:G4U2Xgjj0
>>332
そこでキャラグラですよ

0410名無しさん@涙目です。(dion軍) [US]2018/08/23(木) 10:11:15.68ID:Qe838kFj0
仕事で他人の書いたコードをたくさん見るが、クラスにしてかえって読みにくくなってしまってるのはよく見る。
センスの良い人が書いたのはそんなこと無いけど

0411名無しさん@涙目です。(庭) [US]2018/08/23(木) 11:06:29.72ID:/qA3cKqq0
>>407
キャラクタークラスが人間インターフェースと聖闘士インターフェースのプロパティを持つんじゃね

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

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

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

星矢からブロンズやゴールドのクラス
から作ったインスタンスを
星矢が持っているプロパティから参照すれば
星矢はブロンズにもゴールドにもなれる

0412名無しさん@涙目です。(神奈川県) [US]2018/08/23(木) 11:08:31.65ID:cV3M3Pld0
クラス無いと面倒くさくてしょうがないだろ

0413名無しさん@涙目です。(新潟県) [BR]2018/08/23(木) 11:09:10.06ID:W51vG/E80
コスモを感じるスレになっててわろた

0414名無しさん@涙目です。(庭) [US]2018/08/23(木) 11:27:33.80ID:c0QG4JBc0
キャラクタークラスから犬インターフェースを参照すれば
犬の聖闘士キャラができる

0415名無しさん@涙目です。(庭) [US]2018/08/23(木) 11:36:07.99ID:c0QG4JBc0
犬キャラの名前は銀

0416名無しさん@涙目です。(空) [GB]2018/08/23(木) 11:37:51.49ID:+Qp5bCTV0
完全におっさんスレw

0417名無しさん@涙目です。(京都府) [EU]2018/08/23(木) 12:13:09.85ID:+LLKISFF0
>>371
名前空間はクラスの親玉って思ってる

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

そのクラスをさらにジャンル別にまとめたところの総元締めが名前空間

0418名無しさん@涙目です。(神奈川県) [CN]2018/08/23(木) 12:14:05.28ID:09pyVQyR0
1993恋をした〜

0419名無しさん@涙目です。(神奈川県) [CN]2018/08/23(木) 12:15:23.49ID:09pyVQyR0

0420名無しさん@涙目です。(WiMAX) [US]2018/08/23(木) 13:22:44.78ID:DkkALtSe0
ゲームにはタスクシステムで十分
オブジェクト指向など不要

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は必要だわ。
メソッドだけだとごちゃごちゃになる。部屋の整理を考えてみろ。小物入れだけじゃ部屋は整理整頓できん。
あ、関数型言語は知りません。

0423名無しさん@涙目です。(滋賀県) [IT]2018/08/23(木) 15:52:33.26ID:vZjUpnhM0
>>1は30年前のC言語から、いきなり現代に飛んで来たの?

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言語ににメンバー関数とコンストラクタとデストラクタとインヘリタンスとポリフォーミズムとオーバーライドとオーバーロードとエクセプションとテンプレートとラムダさえ追加してくれるだけでええ。

0427名無しさん@涙目です。(茸) [DE]2018/08/23(木) 16:20:37.55ID:/2nmzujh0
クラスなんていらん。
構造体に関数ポインタ突っ込むから。

0428名無しさん@涙目です。(茸) [US]2018/08/23(木) 16:42:01.01ID:uJz1d/H20
クラスがないと元ソルジャーと言っても強いか弱いかよくわからないじゃん

0429名無しさん@涙目です。(滋賀県) [IT]2018/08/23(木) 16:58:39.95ID:vZjUpnhM0
>>426
それをC#って言うんやろw

0430名無しさん@涙目です。(滋賀県) [IT]2018/08/23(木) 17:01:36.26ID:vZjUpnhM0
>>427
その構文を簡単にしたものがC++

0431名無しさん@涙目です。(茸) [AU]2018/08/23(木) 17:18:57.16ID:/Jl0Pbyk0
>>427
初期化がめんどくさかった思い出

0432名無しさん@涙目です。(広島県) [JP]2018/08/23(木) 18:03:46.16ID:pD1fSBhl0
>>417
Javaでいうパッケージでええんやで

0433名無しさん@涙目です。(禿) [DE]2018/08/23(木) 18:04:40.68ID:kAVUB+sE0
>>410
今もてはやされてる関数型プログラミングはそのオブジェクト指向プログラミングの欠点を克服するためのものなんだよね

0434名無しさん@涙目です。(茸) [US]2018/08/23(木) 18:23:06.33ID:MzDnGckG0
>>427
関数が増えたらポインタだらけで重くなるぞ
そうならないようにしたのがクラス

>>434

■ このスレッドは過去ログ倉庫に格納されています