[掲示板に戻る]
レス送信モード
E-mail
コメント
削除キー(記事の削除用。英数字で8文字以内)
  • 添付可能:GIF,JPG,PNG,WEBM,MP4. 3000KBまで. 現在3762人くらいが見てます.
  • スレッドを立てた人がレスを削除してスレッド内のみアク禁にできます.
  • メール欄に「id表示」と入れてスレッドを立てるとid表示にできます.
  • 削除依頼が閾値を超えるとidを表示します.
  • 政治はだめ. 同人関連のアップロード依頼はだめ.
  • 1スレッド最大1000レス,最低1時間保持.
  • 管理人への連絡は準備板 ご意見へ. 削除依頼は記事番号を押しdelを押して下さい.
  • スマホ・携帯ふたば入口 この板の保存数は30000件です. 規約
  • 新しい板: 人工知能 ZOIDS
f149397.png[見る]


画像ファイル名:1722754260012.png-(9021 B)
9021 B24/08/04(日)15:51:00No.1218368575そうだねx2 17:15頃消えます
プログラム始めようとさっき勉強はじめた
構造体って何がうれしいの?
ちょっとコードが長くなるのを我慢すれば自分でタイピングして問題ない感じ?
このスレは古いので、もうすぐ消えます。
削除された記事が1件あります.見る
124/08/04(日)15:52:11No.1218368973そうだねx19
>自分でタイピングして問題ない感じ?
これがどういう意味かわからない
224/08/04(日)15:52:25No.1218369048そうだねx2
まとめておくと覚えやすい扱いやすい
324/08/04(日)15:53:33No.1218369384+
>これがどういう意味かわからない
んー説明が難しいけど自分で変数とか一個一個書いていっても同じようなことができると言いたかった
424/08/04(日)15:53:36No.1218369393そうだねx3
構造体って言葉が出るってことはCから始めたか?
とりあえず意義がどうとか気にせず全部飲み込め
考えるのは後でいい
524/08/04(日)15:54:51No.1218369795そうだねx35
使わなくてよくない?と思うならそのまま進め
人間の限界が大した事ないのを思い知ってくれ
624/08/04(日)15:55:06No.1218369859そうだねx4
一個一個書くと変える時に一個一個直さなきゃならなくなるぞ
724/08/04(日)15:55:07No.1218369864+
そのちょっとコードが長くなるを1000回繰り返すとどうなるか
824/08/04(日)15:55:52No.1218370071+
>そのちょっとコードが長くなるを1000回繰り返すとどうなるか
いっぱい!
924/08/04(日)15:56:10No.1218370160そうだねx10
>一個一個書くと変える時に一個一個直さなきゃならなくなるぞ
できることってより見やすかったり後で直したりしやすいことが利点ってことか
さんきゅ~「」
1024/08/04(日)15:56:33No.1218370263+
例えばゲームを作るとき
プレイヤーキャラや敵キャラクター1体の情報は
一塊になってたほうが便利だろう?
1124/08/04(日)15:56:43No.1218370308そうだねx1
「人物Aの年齢」「人物Bの年齢」って変数を沢山用意していくよりは
「人物A」の中に「年齢」が格納されてる
「人物B」の中にも「年齢」が格納されてる
って方が後々楽って話だよね
1224/08/04(日)15:57:12No.1218370452そうだねx7
構造体ってよく分からんけどクラスのメンバー変数みたいなもの?
1324/08/04(日)15:57:13No.1218370456そうだねx6
おそらくこの質問はあえて構造体を使わなかったらどうなるのかという疑問を持つことで構造体とは何かを理解しようと試みているのだと受け取った
C前提で話をするけど別に構造体を使わなくてもいいがコンピュータにも人間にも効率が悪かったりする
実際の物理メモリ内部には構造体という概念はないので管理上の問題
1424/08/04(日)15:57:38No.1218370568そうだねx1
楽だったり直しやすいってのが出来ることだろう
1524/08/04(日)15:58:15No.1218370765そうだねx1
同じ変数の集まりを1単位としたものがたくさんいる場合に便利
ゲームだ味方とか敵キャラクターとか作る時とか
最初は一個一個書く力業でもいいけどだんだん効率的に書けるようになった方が便利
1624/08/04(日)15:59:21No.1218371055+
ポインタがいまだにわからない
1724/08/04(日)15:59:37No.1218371132+
あらゆるデザインパターンの嬉しさって正直説明読んでも分からんことが多いから実際にそれ無しで書いてみて困るケースと置き換えることで楽になるケースを体感してみると身につくよ
1824/08/04(日)16:00:29No.1218371372そうだねx10
人間側が楽になるだけじゃない?って話は最終的に高級言語って人間が楽するためのもんじゃん?機械語で書いてもよくない?に行き着く
1924/08/04(日)16:00:29No.1218371373+
lockしたい時とかバラバラだと大変
2024/08/04(日)16:00:43No.1218371448+
実はプログラミング言語はコードが長くなったり読みづらくなったりするのが我慢ならなくて発展してきたんだ
我慢すればとか言い出したらほとんど意味なくなるぞ
2124/08/04(日)16:01:46No.1218371750+
嬉しいって表現する時点で馴染んでねえかな…
2224/08/04(日)16:01:53No.1218371785そうだねx4
基本的に楽するためだから
>ちょっとコードが長くなるのを我慢すれば自分でタイピングして問題ない感じ?
これはまぁ問題ないといえば問題ない
ただその思想はプログラミングに向いてないとは思う
2324/08/04(日)16:02:41No.1218372030+
そいつらを関数に引数として渡すことを考えてみるといい
2424/08/04(日)16:02:45No.1218372048そうだねx1
毎日1分かかる作業を5秒にするために2日使ってツールを作るんだよ
2524/08/04(日)16:03:28No.1218372258+
いらないなら無理に使うこと無いと思う
2624/08/04(日)16:03:29No.1218372265+
構造体の配列から配列の構造体にすると
コンパイラの最適化が効きやすかったりする場合がある
2724/08/04(日)16:04:16No.1218372482+
画像のを使わず学校の一クラス分作ると大変だけど使うと多少楽できるしあとから参照するのも楽
2824/08/04(日)16:04:42No.1218372644そうだねx3
構造体の形にまとめることで同じような扱いのものを共通のインターフェースで扱えて
その構造体を関数の引数にしたり戻り値にしたりポインタで参照できるのが滅茶苦茶便利なのよ
void transSexual(person *p){
p->sex = (p->sex == MALE)?FEMALE:MALE;
}
って関数が一つあるだけで自由にキャラクターをTSできる
2924/08/04(日)16:06:02No.1218373059そうだねx3
ゲームで例えるとするなら例えばレベルアップ処理する時に処理を関数化しておくとする
この時レベルアップで変更するパラメータ(レベルアップ自体に攻撃防御素早さ魔力…みたいな値)を一個一個全部関数に渡すより
構造体一を関数に渡した方がよっぽど見やすい

見やすいってのは重要で例えば素早さのパラメータが実はちゃんと渡せて無かったとか漏れてたのでレベルアップしても値が変わらない!なんてミスが防げる
3024/08/04(日)16:06:12No.1218373107そうだねx10
なるほど性転換メソッドがスイと出た
3124/08/04(日)16:06:21No.1218373149+
別に個人で作るなら使わなくてもいいよ
3224/08/04(日)16:06:53No.1218373287そうだねx3
>void transSexual(person *p){
>p->sex = (p->sex == MALE)?FEMALE:MALE;
>}
めっちゃわかりやすい
初学者向けの本は全部こういう説明にしてほしい
3324/08/04(日)16:07:21No.1218373408+
でもぶっちゃけポリモーフィズムって初学者のやってる事やりたい事にマッチしてない気がするんだよな
いずれ必要にはなるんだが
3424/08/04(日)16:08:11No.1218373657そうだねx3
もっと楽にできねーのかな?って疑問抱いた時に触れるのが一番覚えやすいとは思うよね
プログラミングに限った話じゃないんだけども
3524/08/04(日)16:08:11No.1218373658+
整理のしやすさ管理のしやすさ使い回しのしやすさとか色々理由はあるんだ
使っていかないと実感に繋がらないかもしれないがそれもまさしく道具だからって感じ
3624/08/04(日)16:08:15No.1218373678そうだねx1
後からその部分弄らなきゃならねえってなった時に一括で全部修正できる
3724/08/04(日)16:09:14No.1218373978そうだねx1
ポリモーフィズムは何の関係もないと思うが
横文字を使うとしたらカプセル化
3824/08/04(日)16:09:15No.1218373981そうだねx7
>自分で変数とか一個一個書いていって
とした場合には
transSexualJunKun()
transSexualToshiaki()
transSexualKakko()
みたいにTSさせたい人物ごとに関数が増えていくけど構造体にすれば
transSexual(JunKun)
transSexual(Toshiaki)
transSexual(Kakko)
として処理部分を共通にできるんだ
3924/08/04(日)16:09:34No.1218374082+
どうやって楽するかいつも考えてるぐらいのほうがプログラマ向いてる
4024/08/04(日)16:09:45No.1218374139そうだねx1
やっぱ今初学者が最初にやるには向いてないよC言語
4124/08/04(日)16:09:48No.1218374155+
正直プログラムに関する機能は必要になった時に覚えればいいと思う
最初から詰め込んでも肥大化するだけだし
4224/08/04(日)16:10:14No.1218374260そうだねx8
全部TS基準で考えてるのか!?
4324/08/04(日)16:10:24No.1218374315そうだねx1
自分で作る分にはよくわかんないやって場合は人の作ったのを見てみるとわかるかもしれん
あっこれ使わないと無理だぁってなったことがある
4424/08/04(日)16:10:50No.1218374454+
型になってるからメソッドをオーバーロードして記述しておけば渡す型によってメソッドを分岐させられる
あと単純に引数を横に長く書かなくていい
4524/08/04(日)16:11:33No.1218374701+
なぜそうなのかは長年使ってる人が便利だと思ったからだ
4624/08/04(日)16:12:15No.1218374918そうだねx1
人間絶対ミスするからね
なるべく簡潔に便利にしないと
4724/08/04(日)16:12:31No.1218374993+
まあ自分で実際に困る状況にならないとあんま身につかないかもね
4824/08/04(日)16:12:51No.1218375098+
>正直プログラムに関する機能は必要になった時に覚えればいいと思う
>最初から詰め込んでも肥大化するだけだし
存在を知っていれば後からそういえば使えそうなのあったな〜で探せるけど
知らなかったらそもそも取っ掛かりがないし…
4924/08/04(日)16:12:54No.1218375111+
ある一つのものを表現しようとした時は大体複数の変数をまとめて扱う事になるから引数とか戻り値とかでまとめてやり取りできた方が楽
つーかそうしないと超だるい
5024/08/04(日)16:13:09No.1218375202そうだねx2
何の意味があるのってやつは大体人間の理解力を助けるためのもの
5124/08/04(日)16:13:18No.1218375262+
あんま知らないけどオブジェクト指向は構造体と構造体を操作する手続きをいっしょにしたほうが楽じゃね?って発想っぽい
5224/08/04(日)16:13:35No.1218375348+
C以外って構造体使わないの!?
5324/08/04(日)16:13:37No.1218375358+
サルでも分かるより性転換で分かる本が欲しくなるな…
5424/08/04(日)16:14:08No.1218375544そうだねx2
構造体を使わないというか構造体って呼び方はしないって感じかな…
オブジェクトとかなんとかで大体似たような使い方するものはあるよね
5524/08/04(日)16:14:43No.1218375741+
>最初から詰め込んでも肥大化するだけだし
肥大化した言語ならそうだけどCの構造体くらいは前もって知っておいたほうがよくない?
5624/08/04(日)16:14:47No.1218375769+
規模小さいプログラムだと利便性感じないかもね
5724/08/04(日)16:14:58No.1218375829+
>C以外って構造体使わないの!?
golangは構造体だよ
5824/08/04(日)16:15:12No.1218375914+
>型になってるからメソッドをオーバーロードして記述しておけば渡す型によってメソッドを分岐させられる
>あと単純に引数を横に長く書かなくていい
これ何言ってるか全然意味分からん
5924/08/04(日)16:15:28No.1218376011そうだねx6
>>一個一個書くと変える時に一個一個直さなきゃならなくなるぞ
>できることってより見やすかったり後で直したりしやすいことが利点ってことか
>さんきゅ~「」
教えてもらったのを自分なりに噛み砕いてお礼言えるのは偉いと思う
見習いたい
6024/08/04(日)16:15:35No.1218376049そうだねx1
>C以外って構造体使わないの!?
c++だってstructはあるぞ
classとの違いはデフォルトがpublicかどうかだけだけど
6124/08/04(日)16:16:10No.1218376204+
Cと.netしか知らんけどどっちでも構造体って呼ぶな…
いや.netだとクラス作ってるのはわかるけど
6224/08/04(日)16:16:16No.1218376226+
>C以外って構造体使わないの!?
クラスしか使えなかったりクラスと共存してたりクラスとほぼ同じ意味だったりする
なんとなくのイメージでは参照型に対して構造体とは言わない
6324/08/04(日)16:16:29No.1218376296+
モダンな言語だとスタックに積んで値渡しするのがstructでヒープに置いて参照渡しするのがobjectというイメージ
6424/08/04(日)16:16:56No.1218376459+
オブジェクトと呼んでるな
6524/08/04(日)16:16:59No.1218376475+
どんどん人間が書くところを少なくするのが高級言語の役割であり
更に共通化して各案件で変化のある所だけ抽出するのがシステム設計者の腕の見せ所
きちんと共通化してやれば500件の得意先それぞれ2000行書かずとも
下っ端作業員が20行ずつ書けば動くようになる
6624/08/04(日)16:17:12No.1218376541+
C#もstructはあるけど非推奨だったか
6724/08/04(日)16:17:40No.1218376710+
それこそお仕事向けのプログラムだと色んな値を山ほど扱う必要あるから構造体作って
A関連はこの構造体B関連はこの構造体…にしないとメンテがしんどいんだ
6824/08/04(日)16:18:19No.1218376931+
別に使わなくて困んないなら使わなくていいよ
自分用のプログラムなら実際そう
6924/08/04(日)16:19:21No.1218377288+
>C#もstructはあるけど非推奨だったか
めっちゃくちゃ使うが!?
何も考えずに使うとコピーが大量発生するから初心者はやめとけってだけだよ
7024/08/04(日)16:19:44No.1218377430+
書き込みをした人によって削除されました
7124/08/04(日)16:19:50No.1218377466+
それこそ値をコピーする時だって変数一つ一つにコピーするより構造体にmemcpy一回やるだけで済むからな
7224/08/04(日)16:19:52No.1218377481+
DBの方に纏めるからそんなたくさん使ってない気もする
処理重くなるしな
7324/08/04(日)16:20:22No.1218377647+
継承ってなに・・・わからん…
7424/08/04(日)16:20:58No.1218377846そうだねx5
>継承ってなに・・・わからん…
分からなくて良い
大体クソになるから使うな
7524/08/04(日)16:21:26No.1218377984そうだねx1
知っておくのは重要だよな
なんでこんな苦しい思いをせねばならんのだ…と頭を悩ませてる時に
もしかして意味わからんかったあれってこういう時に使うものなのでは!?ってなったりする
7624/08/04(日)16:21:29No.1218378002そうだねx4
>だから構造体(classとか類似のものも)って構造化プログラミングの根幹だよね
構造化プログラミングの構造化はそういう意味ではなく…
7724/08/04(日)16:21:37No.1218378049+
>継承ってなに・・・わからん…
ソースコードの量が減らせるよ!
7824/08/04(日)16:22:07No.1218378206そうだねx4
>継承ってなに・・・わからん…
一回作った型をカスタマイズして再利用する機能
と見せかけて初心者を罠にハメる機能
7924/08/04(日)16:22:23No.1218378284+
勉強し始めた人が試しに作るような小規模プログラムだとあんまり利点がない
8024/08/04(日)16:22:47No.1218378406+
>>継承ってなに・・・わからん…
>ソースコードの量が減らせるよ!
(小規模なプロジェクトに持ち込むと行数が増える)
8124/08/04(日)16:22:58No.1218378460そうだねx2
構造化プログラミングの根幹って構造化なんですよ
8224/08/04(日)16:23:44No.1218378685+
継承?知ってるわよそれくらい!!
あのAnimalとCatとDogのやつでしょ!?
8324/08/04(日)16:23:46No.1218378699そうだねx1
>継承ってなに・・・わからん…
オールマイトを象徴クラスにしておけば簡単にダークマイトに継承できる
8424/08/04(日)16:23:48No.1218378708+
メタプログラミングって何…
8524/08/04(日)16:23:56No.1218378753+
そ、そんな…継承がオブジェクト指向の使う意味って最初に教わったのに…
必要無いなら使わなくていいなんて酷いじゃないですか
8624/08/04(日)16:24:06No.1218378812+
短いプログラムで実装する事に命をかける奴らが存在する…
8724/08/04(日)16:24:19No.1218378887+
>オールマイトを象徴クラスにしておけば簡単にダークマイトに継承できる
挟まるなや!
8824/08/04(日)16:24:55No.1218379081+
スーパーオールマイト
8924/08/04(日)16:24:57No.1218379095そうだねx2
>短いプログラムで実装する事に命をかける奴らが存在する…
一人でやるならいいんじゃないの
9024/08/04(日)16:25:09No.1218379147+
>短いプログラムで実装する事に命をかける奴らが存在する…
ソースコードは短ければ短いほど美しい…
9124/08/04(日)16:25:10No.1218379155+
構造体がないとプログラムが抽象化していかない
9224/08/04(日)16:26:04No.1218379449そうだねx1
>そ、そんな…継承がオブジェクト指向の使う意味って最初に教わったのに…
>必要無いなら使わなくていいなんて酷いじゃないですか
必要あったから作ったんだけど手に余るっていうか…人間は自分が何やってるかあんまりちゃんと理解してないというか…
9324/08/04(日)16:26:09No.1218379470そうだねx2
SEに就職してなんもわからん…のまま5年が経過しました
9424/08/04(日)16:26:18No.1218379504そうだねx3
>>継承ってなに・・・わからん…
>オールマイトを象徴クラスにしておけば簡単にダークマイトに継承できる
だいぶ大事なそのまま使いたいところオーバーライドしちゃってない?
9524/08/04(日)16:26:40No.1218379622+
>SEに就職してなんもわからん…のまま5年が経過しました
気にすんな俺は10年やってるけど何も分からん
9624/08/04(日)16:26:44No.1218379646そうだねx2
でも学びはじめのときに
>構造体って何がうれしいの?
って疑問が持てるのも大事なことだと思う
9724/08/04(日)16:26:58No.1218379721+
>短いプログラムで実装する事に命をかける奴らが存在する…
個人で全部保守管理してくれるならそれでもいいんだ
他人がコード見るようなのは可読性重視にしてくだち!
9824/08/04(日)16:26:59No.1218379725+
継承も昔は早かったんよ主にコンパイル速度が
9924/08/04(日)16:27:02No.1218379739+
ボブおじさんですらポリモーフィズム以外はおまけっすって感じだからな…
10024/08/04(日)16:27:12No.1218379796+
interfaceがあるならまあ継承は本当に必要な時だけ使えばいいんだけど
10124/08/04(日)16:27:44No.1218379950+
>構造体がないとプログラムが抽象化していかない
構造化してるだけで抽象化はしてねえよ
10224/08/04(日)16:28:37No.1218380254そうだねx3
>>構造体がないとプログラムが抽象化していかない
>構造化してるだけで抽象化はしてねえよ
構造化ってif/for/whileのあれじゃないの?
10324/08/04(日)16:28:38No.1218380265+
>>SEに就職してなんもわからん…のまま5年が経過しました
>気にすんな俺は10年やってるけど何も分からん
ベテランですらちょっと外れた同業種の門外は初心者か何かで?みたいなことはよくある界隈だから…そんなもんだ
10424/08/04(日)16:28:56No.1218380374+
一人で書くにしても可読性高めとかないと半年ぶりとかに触る時にド忘れして無駄に時間を食う事も多い
10524/08/04(日)16:29:19No.1218380492そうだねx6
いわゆる参考書なんかで学び始めた場合はたぶん100人中100人が同じ疑問を抱くと思う
なぜなら構造体を使うメリットゼロなクソ単純なソースコードで説明するから
10624/08/04(日)16:29:24No.1218380531そうだねx1
継承の概念を説明するときにinterfaceの機能も含めてることがあるからややこしい
継承はできる限り避けたいがinterfaceはガンガン使っていい
10724/08/04(日)16:29:32No.1218380563そうだねx2
(誰だよこんなクソコード書いたの!)
(俺だ)
10824/08/04(日)16:30:26No.1218380901+
特殊な調べモノしながらできた―!ってやつは半年するとだいたい忘れてること多いので
結局作業メモは大事
10924/08/04(日)16:30:48No.1218381025+
>(誰だよこんなクソコード書いたの!)
>(俺だ)
1年前に改造したプログラム先月現場に入れ替えたら不具合起きて見返したらクソみたいなプログラムだった
なんで気づかないんだ当時の俺…
11024/08/04(日)16:31:09No.1218381154+
趣味のプログラミングでさえGit使わないと俺には無理だ
毎日commit
11124/08/04(日)16:31:41No.1218381336+
>メタプログラミングって何…
社内で見たコードだと実行時にプログラミング中にしか知りえない情報を使えるって感じだった
実行オブジェクトを変えずに後から自由に動きを変えられる感じ
こんなもんやってりゃそりゃ遅くなるよなって思った
11224/08/04(日)16:32:06No.1218381489+
趣味でのコーディングって何作ったりしてるの
11324/08/04(日)16:32:24No.1218381589+
継承とインターフェース
どっちも同じじゃないですか💦
11424/08/04(日)16:32:26No.1218381598+
>趣味でのコーディングって何作ったりしてるの
ジーコとかWebアプリとか
11524/08/04(日)16:32:38No.1218381657+
>なんで気づかないんだ当時の俺…
それは成長してる証拠だからいいんだ
俺は昔の俺はすごかったんだなって感じになってる
11624/08/04(日)16:33:05No.1218381814+
ちょろっとぱいそんの入門書読んだだけだけど下手に継承とかやらずにコピペしてクラスとメソッド書いたほうが良くない?
11724/08/04(日)16:33:13No.1218381852+
>これ何言ってるか全然意味分からん
同じメソッド名で別の引数を定義すると呼び出された時に引数を見て自動で振り分けてくれるオーバーロードって機能がある
構造体Aを引数に呼び出された場合と構造体Bを引数に呼び出された場合でオーバーロードして定義しておくことで
呼び出す時構造体Bには構造体A.1にあたる値がないからこのメソッドは使えない…みたいなことが起こらない
で変数だと沢山渡そうとすると横に長く記述することになるけど構造体だと一つで済む
11824/08/04(日)16:33:17No.1218381880+
OOPの話まで行くとややこしいのでざっくり抽象データ型ということでお茶を濁す
11924/08/04(日)16:34:08No.1218382201+
構造体とポインタはなんというか習ったことはなんだよコイツ!!ってなってたけど
実践し始めると神かよコイツ!!ってなってた

誰だよこのクソコード書いたの!!
12024/08/04(日)16:34:28No.1218382352+
訳あってCでラズパイpico用のコード書いたことあるけど二度とCには触れないと誓った
12124/08/04(日)16:35:00No.1218382545+
誰かメインフレームを滅ぼして俺をCOBOLとアセンブラから救ってくれ
12224/08/04(日)16:35:08No.1218382593+
メタプログラミングなんて複雑なだけでよくない
本当に必要なのはプリプロセッサのディレクティブ
これね
12324/08/04(日)16:35:20No.1218382662そうだねx1
c++にはインターフェイスがないからOOPの説明するのに本当に継承から説明しなきゃいけなくて
その流れでとりあえず継承を説明する伝統が解説本にあるんだと思う
12424/08/04(日)16:35:44No.1218382816そうだねx1
>同じメソッド名で別の引数を定義すると呼び出された時に引数を見て自動で振り分けてくれるオーバーロードって機能がある
>構造体Aを引数に呼び出された場合と構造体Bを引数に呼び出された場合でオーバーロードして定義しておくことで
>呼び出す時構造体Bには構造体A.1にあたる値がないからこのメソッドは使えない…みたいなことが起こらない
>で変数だと沢山渡そうとすると横に長く記述することになるけど構造体だと一つで済む
mayかimgかでとしあきと「」を自動で切り替えてくれるような感じ?
12524/08/04(日)16:35:55No.1218382889+
>趣味でのコーディングって何作ったりしてるの
最近は部屋の温度湿度を見て自動でエアコンONOFFしてくれるプログラム作ったよ
エアコン本体の温度制御がどうも安定しなかったから…
そういうちょっとした生活の不満を自分で解決できると楽しい
12624/08/04(日)16:36:06No.1218382953+
>ちょろっとぱいそんの入門書読んだだけだけど下手に継承とかやらずにコピペしてクラスとメソッド書いたほうが良くない?
大抵はそう
作ってるものや問題の本質が分かってるなら使い所も分かる
12724/08/04(日)16:36:54No.1218383267+
>ちょろっとぱいそんの入門書読んだだけだけど下手に継承とかやらずにコピペしてクラスとメソッド書いたほうが良くない?
全体を見渡してクラスもメソッドも2・3個みたいなごく単純なコードならその通り
まともなWEBサービス組もうとか考えだすとコピペが100カ所みたいな規模にすぐ達するので
整理しないと人間が把握できなくなる
12824/08/04(日)16:36:58No.1218383287+
>>これ何言ってるか全然意味分からん
>同じメソッド名で別の引数を定義すると呼び出された時に引数を見て自動で振り分けてくれるオーバーロードって機能がある
>構造体Aを引数に呼び出された場合と構造体Bを引数に呼び出された場合でオーバーロードして定義しておくことで
>呼び出す時構造体Bには構造体A.1にあたる値がないからこのメソッドは使えない…みたいなことが起こらない
>で変数だと沢山渡そうとすると横に長く記述することになるけど構造体だと一つで済む
いややっぱり何を言ってるか分からん
変数の型は決まってるんだからメソッドを分岐させられるなんて効果はないだろ
オーバーロードがある型がコンパイルエラーにならなくなるだけでは?
12924/08/04(日)16:37:20No.1218383422そうだねx2
>メタプログラミングなんて複雑なだけでよくない
分からなくもない
>本当に必要なのはプリプロセッサのディレクティブ
頼むから死んでくれ
13024/08/04(日)16:38:02No.1218383655+
過度な共通化の方が後々痛い目あうこと多いからな…
もちろんコピペ箇所の修正忘れで痛い目見たことも多いが…
13124/08/04(日)16:38:20No.1218383768+
コピペするぐらいならファイル切って#includeしない?となってしまうC言語脳
13224/08/04(日)16:38:35No.1218383865そうだねx1
>過度な共通化の方が後々痛い目あうこと多いからな…
>もちろんコピペ箇所の修正忘れで痛い目見たことも多いが…
(例の動画)
13324/08/04(日)16:38:36No.1218383875+
>mayかimgかでとしあきと「」を自動で切り替えてくれるような感じ?
そうそう虹裏メソッドを呼んだら入ろうとしてるのが「」かとしあきかでimgとmayを振り分けてくれる感じ
呼び出す時に深く考えなくても虹裏を呼び出せる
13424/08/04(日)16:38:39No.1218383885+
f149397.png[見る]
13524/08/04(日)16:38:43No.1218383903+
そもそもメソッドのオーバーロードはどちらかと言えば黒魔術寄りだと思っている
13624/08/04(日)16:38:46No.1218383924+
実際のところ勉強してて初心者が思う「これ必要?」は多くの場合趣味での範囲ならなくてもなんとかなるからほっといていい
その知識のまま製品コード書くな殺すぞ
13724/08/04(日)16:39:10No.1218384057+
まあ入門段階でピンとこなくてもPythonで適当なフレームワーク使い始めたらこれ継承して使ってね~
って使い方指示されるからそのときなんとなく分かればいいよ
13824/08/04(日)16:39:13No.1218384073+
関数型vsオブジェクト指向とかいうレスポンチバトラーを呼び寄せる呪文
13924/08/04(日)16:39:27No.1218384157そうだねx1
>全体を見渡してクラスもメソッドも2・3個みたいなごく単純なコードならその通り
>まともなWEBサービス組もうとか考えだすとコピペが100カ所みたいな規模にすぐ達するので
>整理しないと人間が把握できなくなる
結局のところプログラム書く前の設計段階が肝要ということでは?
働いたことないからよくわからないけど
14024/08/04(日)16:39:31No.1218384182+
>メタプログラミングって何…
型とか変数名とか関数名とかをプログラム実行中に動的に扱えるやつ
ざっくりC++で言うテンプレートとかJavaで言う型変数とリフレクションとか
14124/08/04(日)16:39:39No.1218384233+
>f149397.png[見る]
おでんが販売期間外のエラーハンドリングが出来てないゴミ設計やめろ
14224/08/04(日)16:40:53No.1218384678+
おでんが売ってない例外はグローバルハンドラで取ればええ!
14324/08/04(日)16:40:57No.1218384699+
>結局のところプログラム書く前の設計段階が肝要ということでは?
>働いたことないからよくわからないけど
働くという前提で話すならそもそも1人で全部書くケースがまれなので
インタフェースとかきちんと定義してないと自分以外が書いたコードを文字通り全部読まないといけなくなる
狂う
14424/08/04(日)16:41:26No.1218384896+
て、テンプレートメタプログラミング…
14524/08/04(日)16:41:38No.1218384973+
>いわゆる参考書なんかで学び始めた場合はたぶん100人中100人が同じ疑問を抱くと思う
>なぜなら構造体を使うメリットゼロなクソ単純なソースコードで説明するから
ではこちらのクソ複雑なソースコードをどうぞ
って説明に挟むのもなんか違うからな…
14624/08/04(日)16:42:08No.1218385157+
参考書にクソ長いコード載せられても困るしな
14724/08/04(日)16:42:12No.1218385169+
女クラスを用意しててたまに玉と竿が生えてる女向けにフタナリクラスを継承で作れると便利じゃん?
と思ったら男ベースのフタナリも出てきて困ったりする奴
14824/08/04(日)16:42:24No.1218385234+
>>>構造体がないとプログラムが抽象化していかない
>>構造化してるだけで抽象化はしてねえよ
>構造化ってif/for/whileのあれじゃないの?
構造化は一般的な言葉だから構造化プログラミングの文脈以外でも使う
抽象化も一般的な言葉だがプログラミングにおいては実装からの分離を伴う意味で使うことが多い
14924/08/04(日)16:42:31No.1218385272+
>インタフェースとかきちんと定義してないと自分以外が書いたコードを文字通り全部読まないといけなくなる
でも上手く動かないと結局全部読む事にならない?
15024/08/04(日)16:43:00No.1218385463+
>おでんが売ってない例外はグローバルハンドラで取ればええ!
…すぞ
こういうこと出来ないGo言語は本当にいい言語だと思う
クソコードを生産する奴は絶対に消えないのでクソコードを書けなくすればいい!
15124/08/04(日)16:43:06No.1218385498+
マクロはC/C++の一番楽しい要素で一番クソな要素だよ
改行しなきゃいけないほど長いマクロ書く奴は死ね
15224/08/04(日)16:43:28No.1218385639+
>変数の型は決まってるんだからメソッドを分岐させられるなんて効果はないだろ
>オーバーロードがある型がコンパイルエラーにならなくなるだけでは?
メソッド内で分岐するんじゃなくて呼び出すメソッドを分岐させられると言えばいいかな?
15324/08/04(日)16:44:07No.1218385876そうだねx1
>f149397.png[見る]
おでん売ってても100円未満になるまで買い続けるクソプログラム
15424/08/04(日)16:44:44No.1218386089+
>抽象化も一般的な言葉だがプログラミングにおいては実装からの分離を伴う意味で使うことが多い
うーんその意味で書いたけどな
>transSexualJunKun()
>transSexualToshiaki()
>transSexualKakko()

>transSexual(JunKun)
>transSexual(Toshiaki)
>transSexual(Kakko)
になるって抽象化の第一歩だと思うんだけど
15524/08/04(日)16:44:44No.1218386093+
>>f149397.png[見る]
>おでん売ってても100円未満になるまで買い続けるクソプログラム
おでんどれだけ買うか要件書いた?
15624/08/04(日)16:44:52No.1218386132+
>f149397.png[見る]
おでんが売られてなかったらどうなるんだろう
15724/08/04(日)16:44:56No.1218386165+
コードが設計書です😤😤
15824/08/04(日)16:45:10No.1218386248+
>おでんが売られてなかったらどうなるんだろう
nullを買う
15924/08/04(日)16:45:11No.1218386253+
>>変数の型は決まってるんだからメソッドを分岐させられるなんて効果はないだろ
>>オーバーロードがある型がコンパイルエラーにならなくなるだけでは?
>メソッド内で分岐するんじゃなくて呼び出すメソッドを分岐させられると言えばいいかな?
いやコンパイル時に型は決まるんだから呼び出すメソッドは分岐しないって
16024/08/04(日)16:45:25No.1218386342+
>女クラスを用意しててたまに玉と竿が生えてる女向けにフタナリクラスを継承で作れると便利じゃん?
>と思ったら男ベースのフタナリも出てきて困ったりする奴
だから継承じゃなくてコンポジションで作っておけばクソデカおっぱいもクソデカちんぽもクソデカきんたまも好きに盛れるわけですね
16124/08/04(日)16:45:49No.1218386489+
>いややっぱり何を言ってるか分からん
>変数の型は決まってるんだからメソッドを分岐させられるなんて効果はないだろ
>オーバーロードがある型がコンパイルエラーにならなくなるだけでは?
メソッドを分岐って書き方が悪かった
構造体ならそれそのものが型の情報を持ってるからプリミティブな型を渡す場合と違って
呼び出す時に型による振り分けをできるしオーバーロードして定義しておけば型に合わせた記述ができると言いたかった
16224/08/04(日)16:45:56No.1218386531+
>コードが設計書です😤😤
回路図書かずにアートワーク作るような真似はやめろ
16324/08/04(日)16:46:17No.1218386662+
人間クラスを継承して男クラスと女クラスを用意する
男と女を両方継承すればふたなりクラスの出来上がり!
16424/08/04(日)16:47:03No.1218386940+
>>インタフェースとかきちんと定義してないと自分以外が書いたコードを文字通り全部読まないといけなくなる
>でも上手く動かないと結局全部読む事にならない?
上手く動かない時に読む範囲を減らすための工夫でもある
全部コピペだった場合「もしかしたらここだけ中身ちょっと変えてるかも」で全部読む必要が出る
インタフェースやクラスが正しく適用されてれば「この範囲は確定で問題ない」って領域が大幅に増える
16524/08/04(日)16:47:19No.1218387032そうだねx1
>そもそもメソッドのオーバーロードはどちらかと言えば黒魔術寄りだと思っている
無いと死ぬだろ…
実数を足し算するか整数を足し算するかで使うメソッドをわけることになるぞ
16624/08/04(日)16:48:11No.1218387361+
>全部コピペだった場合「もしかしたらここだけ中身ちょっと変えてるかも」で全部読む必要が出る
これ経験長くてもやるやついるから本当にしんどい…
16724/08/04(日)16:48:19No.1218387415+
>いやコンパイル時に型は決まるんだから呼び出すメソッドは分岐しないって
分岐という言葉を実行中に行われる条件分岐にしか使うべきでない的な話?
16824/08/04(日)16:48:21No.1218387423そうだねx1
>うーんその意味で書いたけどな
>>transSexualJunKun()
>>transSexualToshiaki()
>>transSexualKakko()
>が
>>transSexual(JunKun)
>>transSexual(Toshiaki)
>>transSexual(Kakko)
>になるって抽象化の第一歩だと思うんだけど
一般的な意味なら当てはまるんだろうがプログラミングにおいて抽象化は特別な言葉だからね
その例は実装に依存したままなので抽象化とは言い難い
16924/08/04(日)16:48:37No.1218387505+
>そもそもメソッドのオーバーロードはどちらかと言えば黒魔術寄りだと思っている
コンストラクタはオーバーロードしておかないと完全に一致するデータが作れる時にしか呼び出せない代物にならない?
17024/08/04(日)16:48:52No.1218387580+
>人間クラスを継承して男クラスと女クラスを用意する
性的マイノリティに配慮して性別を男女の二値じゃなくて自由記述に変更するから修正お願いね
17124/08/04(日)16:49:05No.1218387654+
>人間クラスを継承して男クラスと女クラスを用意する
>男と女を両方継承すればふたなりクラスの出来上がり!
それでおしっこはおまんこ付近とちんぽの先っちょのどっちから出せばいいので…?
17224/08/04(日)16:50:11No.1218388087+
プログラムミングの話って知らん人からすると暗号文の羅列にしかみえんよなって今更ながらに思った
17324/08/04(日)16:50:26No.1218388195+
俺プログラム得意だし!
達人プログラマーもちゃんと読んだし!
17424/08/04(日)16:50:41No.1218388291+
プログラミング雰囲気で書いてる
17524/08/04(日)16:50:48No.1218388339+
継承は覚えておいて損ないけど本当に継承で解決させるべきかは色々悩ましいケース多いよね
17624/08/04(日)16:50:55No.1218388383+
>>いやコンパイル時に型は決まるんだから呼び出すメソッドは分岐しないって
>分岐という言葉を実行中に行われる条件分岐にしか使うべきでない的な話?
いや人間がコーディングしている時の解釈においても分岐はしてない
変数の型を判断している時間はあるかもしれないがそれはオーバーロードによる分岐ではない
17724/08/04(日)16:52:09No.1218388887+
参考書で出てくる使用例だと嬉しさがわかるほど複雑なものなんてないからな・・・
17824/08/04(日)16:52:16No.1218388942+
>>人間クラスを継承して男クラスと女クラスを用意する
>性的マイノリティに配慮して性別を男女の二値じゃなくて自由記述に変更するから修正お願いね
実際言い出す無能上司居るからISO_5218に準拠しておこう
国際標準仕様をやめて弊社の独自解釈にするのは却ってリスクになりますよと突っぱねられる
17924/08/04(日)16:52:53No.1218389236+
>それでおしっこはおまんこ付近とちんぽの先っちょのどっちから出せばいいので…?
ユーザーの企業内派閥闘争に発展
18024/08/04(日)16:53:34No.1218389512+
>>人間クラスを継承して男クラスと女クラスを用意する
>>男と女を両方継承すればふたなりクラスの出来上がり!
>それでおしっこはおまんこ付近とちんぽの先っちょのどっちから出せばいいので…?
判別できないのでおしっこは座ってするものとします! 運用でカバー!
18124/08/04(日)16:53:48No.1218389594+
自分だけが使うコードならともかくなあ
複数人が弄るもんで変に複雑なことやろうとすると結局手間かかるんだわ
18224/08/04(日)16:53:49No.1218389600そうだねx3
俺が経験して一つ理解したのは
ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
18324/08/04(日)16:54:09No.1218389729+
クソ長い配列ってこと?
18424/08/04(日)16:54:12No.1218389742+
>>>transSexualJunKun()
>>>transSexualToshiaki()
>>>transSexualKakko()
>>が
>>>transSexual(JunKun)
>>>transSexual(Toshiaki)
>>>transSexual(Kakko)
>>になるって抽象化の第一歩だと思うんだけど
>一般的な意味なら当てはまるんだろうがプログラミングにおいて抽象化は特別な言葉だからね
>その例は実装に依存したままなので抽象化とは言い難い
これはtransSexualのメソッドを持つinterfaceを介して使用するようになれば抽象化されたということになるのか?
18524/08/04(日)16:54:25No.1218389826+
>実際言い出す無能上司居るからISO_5218に準拠しておこう
>国際標準仕様をやめて弊社の独自解釈にするのは却ってリスクになりますよと突っぱねられる
ISOとか気にしたことないけどちゃんと設計とかする人って社内のだけじゃなくてそういうのも見るんだね…
18624/08/04(日)16:54:50No.1218389996そうだねx2
>俺が経験して一つ理解したのは
>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
いや数値にするな
型をつくれ
18724/08/04(日)16:54:57No.1218390051+
>一般的な意味なら当てはまるんだろうがプログラミングにおいて抽象化は特別な言葉だからね
>その例は実装に依存したままなので抽象化とは言い難い
ごめん本当にこれがわからない
完全に抽象化を達成しないと抽象化と言えないってこと?
それは違うと思う…
極論機械語からC言語になるだけでも抽象化って言えるわけだし
18824/08/04(日)16:55:05No.1218390100+
年月を6桁数値にするのはやめろ
18924/08/04(日)16:55:30No.1218390253+
>いや数値にするな
>型をつくれ
こうして厳密にしていくことで本当に色々増えるんだよな…
19024/08/04(日)16:55:38No.1218390315+
>俺が経験して一つ理解したのは
>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
男女みたいな2つしか選択肢要らないのでも?
19124/08/04(日)16:56:15No.1218390572そうだねx1
構造体1
{入れたい変数
構造体0のアドレス
構造体2のアドレス}
みたいにできるよね?もうCから離れて随分経つから曖昧だけど
19224/08/04(日)16:56:16No.1218390575+
プロダクトに性別の概念があるなら性別の型作っても別に良いだろ…
19324/08/04(日)16:56:24No.1218390622+
>>俺が経験して一つ理解したのは
>>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
>男女みたいな2つしか選択肢要らないのでも?
俺のところだと元々男女あったところに子なんてのが追加された
19424/08/04(日)16:56:43No.1218390731+
>>俺が経験して一つ理解したのは
>>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
>男女みたいな2つしか選択肢要らないのでも?
トランスジェンダーやふたなりを考えないとしても不明みたいな値を入れたくなることあるから
19524/08/04(日)16:57:31No.1218391040+
>ごめん本当にこれがわからない
>完全に抽象化を達成しないと抽象化と言えないってこと?
>それは違うと思う…
>極論機械語からC言語になるだけでも抽象化って言えるわけだし
一般的な意味ならそれで合ってるよ
ただプログラミングの話題で抽象化という言葉を使うと
より限定的な意味で解釈する人が多いってこと
19624/08/04(日)16:57:41No.1218391089+
bool使うけどもしかするともしかするので次の変数まで1ワード空ける
19724/08/04(日)16:57:44No.1218391113+
>俺が経験して一つ理解したのは
>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
bool型がある言語でそれをやるのは混乱の元だからうーn……
ソースコードじゃなくてDBテーブル設計の話なら後からの変更が厳しいからわりと普通だけど
19824/08/04(日)16:57:57No.1218391204+
>>男女みたいな2つしか選択肢要らないのでも?
>俺のところだと元々男女あったところに子なんてのが追加された
せめて性別にしろよ!
19924/08/04(日)16:58:50No.1218391609+
>>>俺が経験して一つ理解したのは
>>>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
>>男女みたいな2つしか選択肢要らないのでも?
>トランスジェンダーやふたなりを考えないとしても不明みたいな値を入れたくなることあるから
不明だと次の処理に進まないようにしてたけど最近は🏳️‍🌈がうるさいから…
20024/08/04(日)16:59:13No.1218391762+
今までは1bitで良かった男女は今は何bitいるんだ?
20124/08/04(日)16:59:19No.1218391805そうだねx1
鉄道料金とかあるし子はまあ分かるよ
20224/08/04(日)16:59:28No.1218391877そうだねx4
>>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
>男女みたいな2つしか選択肢要らないのでも?
そもそもboolを真偽じゃなくてAかBかを表す用途に使うんじゃねえ!!!!!たわけ!!!!!
20324/08/04(日)16:59:34No.1218391919+
性別不明かはともかく男女入力しない場合後続がどうなるかは確認するんだぞ
20424/08/04(日)16:59:42No.1218391981+
>ちょろっとぱいそんの入門書読んだだけだけど下手に継承とかやらずにコピペしてクラスとメソッド書いたほうが良くない?
難しいことをやろうとするよりもわかりやすさと手の入れやすさがすべてだからな
20524/08/04(日)16:59:49No.1218392050+
ゲームとかだと時々そんな感じのコードあると聞いた
20624/08/04(日)17:00:03No.1218392149+
じゃあこうしましょう
ビットフィールドでunion
20724/08/04(日)17:00:12No.1218392213+
>関数型vsオブジェクト指向とかいうレスポンチバトラーを呼び寄せる呪文
対立してるわけじゃないと思うけどscalaみたいにいい感じに両立してる言語が少ないので
中途半端な機能で関数型を実践しようとするとエレガントにならなくてお互いにモヤる感じ
20824/08/04(日)17:00:12No.1218392214+
long <よお
20924/08/04(日)17:00:17No.1218392245そうだねx2
フラグとして使う分にはbool値で困ることはなさそうだな!

…ないよね?
21024/08/04(日)17:00:44No.1218392455+
0,1じゃなくて1,2でフラグ作るのやめろ
1が否だし
21124/08/04(日)17:00:49No.1218392487+
>フラグとして使う分にはbool値で困ることはなさそうだな!
>
>…ないよね?
ないよ
21224/08/04(日)17:00:53No.1218392517+
でもパーソナルデータから対象絞り込んで訴求する
みたいな案件だと結局男か女か見てそれ以外は対象外になること多いよね
大人しく男か女選んでた方が良いことはけっこうある
21324/08/04(日)17:01:13No.1218392655+
豆知識
Bool代数を考えたジョージブールさんは
ホメオパシーを信じてた奥さんが病状を悪化させたせいで死んだ
21424/08/04(日)17:01:19No.1218392692そうだねx2
>鉄道料金とかあるし子はまあ分かるよ
でもそれは別のカラムかなんか作ってフラグ振りたくない?
あとで子供のデータも男児女児で見分けたいって出そうだし
21524/08/04(日)17:01:22No.1218392716+
-1 , 0
0 , 1
1 , 0
21624/08/04(日)17:01:25No.1218392738+
ISOに従えば性別表記は4種類必要だからとりあえずそのようにenum作る
21724/08/04(日)17:01:29No.1218392774そうだねx1
客のカテゴリならそう言え!性別って言うんじゃねえ!
21824/08/04(日)17:01:32No.1218392796+
>>>ぱっと見boolで扱うべきように見えるデータもいつ3つ以上になるか分からないから数値にしとけということだ
>>男女みたいな2つしか選択肢要らないのでも?
>そもそもboolを真偽じゃなくてAかBかを表す用途に使うんじゃねえ!!!!!たわけ!!!!!
でもよォ
昔のシステムだと無限に変数使えないのぜ
ちなみに患者のカルテと同期する90年代製の医療健康器具なのぜ
21924/08/04(日)17:01:37No.1218392839+
>フラグとして使う分にはbool値で困ることはなさそうだな!
>…ないよね?
01以外のフラグって何?
22024/08/04(日)17:01:43No.1218392896そうだねx2
プログラムとかにうんことかのワードを使うと変なところで表に出てきてトラブルの原因になると聞いた
22124/08/04(日)17:01:56No.1218392985+
オブジェクト指向とか言う奴全然分からん
なんでクラスに纏めるんだ普通の関数で良くない?
22224/08/04(日)17:02:23No.1218393139+
割引パターンとかに名称変えたら?
22324/08/04(日)17:02:31No.1218393204+
>プログラムとかにうんことかのワードを使うと変なところで表に出てきてトラブルの原因になると聞いた
取り敢えずhogefugafoobarでいいよ
22424/08/04(日)17:02:43No.1218393276+
弊社のデータは知ってるだけでも1男2女と1男3女と0男1女の三通りある
22524/08/04(日)17:02:46No.1218393294+
やめて! 男か女しか入らない想定の必須カラムに空文字とか入れないで!
22624/08/04(日)17:02:53No.1218393341+
名前空間を過信するな
22724/08/04(日)17:03:03No.1218393432+
>これはtransSexualのメソッドを持つinterfaceを介して使用するようになれば抽象化されたということになるのか?
性転換処理を抽象化するという意味ならはい
ただ引数の型が性別を公開してるようなら実質的な抽象化と言って良いかは怪しい
対象と処理をどちらも抽象化するなら引数なしのインスタンスメソッドにする
22824/08/04(日)17:03:15No.1218393531+
>プログラムとかにうんことかのワードを使うと変なところで表に出てきてトラブルの原因になると聞いた
https://www.infiniteloop.co.jp/tech-blog/2021/09/unko/ [link]
22924/08/04(日)17:03:42No.1218393767+
>オブジェクト指向とか言う奴全然分からん
>なんでクラスに纏めるんだ普通の関数で良くない?
モダンな言語だと言語機能に溶けきってるから
オブジェクト指向とデザインパターンは忘れてもいいよ自然にやることになる
23024/08/04(日)17:03:49No.1218393831+
そういやCOBOLerは居ないのかな流石に
23124/08/04(日)17:04:09No.1218393974+
例えば可変長配列が出来ない環境で実現したい場合あるじゃん
構造体A{
変数A-1
変数A-2
}

構造体B{
構造体A
配列B-1
}
と定義すれば
本来変数A-2の型より大きなデータを入れた場合でも
配列B-1に続いて入ってくれるので実現可能
23224/08/04(日)17:04:11No.1218393996+
>オブジェクト指向とか言う奴全然分からん
>なんでクラスに纏めるんだ普通の関数で良くない?
では今からパワポみたいなソフトを手続き型の書き方だけで書いてください
23324/08/04(日)17:04:12No.1218394001+
>>そもそもboolを真偽じゃなくてAかBかを表す用途に使うんじゃねえ!!!!!たわけ!!!!!
>でもよォ
>昔のシステムだと無限に変数使えないのぜ
>ちなみに患者のカルテと同期する90年代製の医療健康器具なのぜ
組み込み系とかでメモリの都合上どうしてもってケースでも
ソースコード上ではEnum型っぽく運用するぐらい最近の言語なら出来るだろう
23424/08/04(日)17:04:52No.1218394260+
アセンブラから構造化プログラミングからオブジェクト指向から関数型プログラミングになる形は美しいよね
23524/08/04(日)17:04:57No.1218394301+
7500?近いプレス機作ってるけどbool型64点int型15点float型15点しかないから人がプレス機の中に入ったか入ってないかはboolで見てるけど
たまに
いや何でもない
23624/08/04(日)17:05:08No.1218394347+
OOP教えるタイミングが入門書だと混乱するから良くないと思う
おっぱいそんならクラスの切り方とメソッドのselfだけお約束として表面的に伝えておいてほしい
犬が吠えるとかは必要になったタイミングで教えてくれ
23724/08/04(日)17:05:16No.1218394408そうだねx1
C言語で無理やりオブジェクト指向やろうとしたコード見てるとだいたい構造体使ってたし
Cにおいて構造体が抽象化に必要なのはその通りだと思うんだけどどうかな…
23824/08/04(日)17:05:30No.1218394504そうだねx3
>男女みたいな2つしか選択肢要らないのでも?
それはenum型使えよ
bool型使うのはTRUEかFALSEかだ
23924/08/04(日)17:05:51No.1218394656+
共用体も使え!
24024/08/04(日)17:06:12No.1218394785+
関数ポインタわかるやついる?
俺はわからない
24124/08/04(日)17:06:20No.1218394826そうだねx1
最近のじゃないシステムに最近のやつ出すのはナンセンスすぎるだろ
24224/08/04(日)17:06:35No.1218394904そうだねx1
enumはCじゃなくても使うよね
24324/08/04(日)17:06:44No.1218394964+
>関数ポインタわかるやついる?
>俺はわからない
わからないのでPerlは諦めた
24424/08/04(日)17:06:54No.1218395036+
>共用体も使え!
了解!ビットフィールド!!
24524/08/04(日)17:07:21No.1218395206+
>関数ポインタわかるやついる?
>俺はわからない
分からん…俺は雰囲気で組み込み系をやっている
24624/08/04(日)17:07:28No.1218395247+
>関数ポインタわかるやついる?
>俺はわからない
要するにこの関数はここにいるぜってことだろ!
24724/08/04(日)17:07:30No.1218395264+
>>男女みたいな2つしか選択肢要らないのでも?
>それはenum型使えよ
>bool型使うのはTRUEかFALSEかだ
男はTRUEで女はFALSEとかやったらめどいことになりそうだよな
24824/08/04(日)17:07:32No.1218395275+
>最近のじゃないシステムに最近のやつ出すのはナンセンスすぎるだろ
2000年問題もこういう感じでレガシーシステム馬鹿にするやつ多かったな
24924/08/04(日)17:07:43No.1218395354+
組み込み屋はオシロでも見てな!
25024/08/04(日)17:07:49No.1218395403+
>C言語で無理やりオブジェクト指向やろうとしたコード見てるとだいたい構造体使ってたし
>Cにおいて構造体が抽象化に必要なのはその通りだと思うんだけどどうかな…
その例なら必要なのは構造体ではなく関数ポインタに過ぎない
25124/08/04(日)17:07:59No.1218395465+
>関数ポインタわかるやついる?
>俺はわからない
割込のコールバックに使う奴!
コールバックに使う奴じゃないか!!
25224/08/04(日)17:08:14No.1218395563+
if(x=1);
これが動くの本当に良くないと思う!
25324/08/04(日)17:08:31No.1218395715+
>>>男女みたいな2つしか選択肢要らないのでも?
>>それはenum型使えよ
>>bool型使うのはTRUEかFALSEかだ
>男はTRUEで女はFALSEとかやったらめどいことになりそうだよな
Q.男であるか?
A.TRUE
の質問文でしかないからそこは特にどうでもいいんだよクソがァ!
25424/08/04(日)17:08:45No.1218395791+
ポインタはあれだ
デスクトップのショートカットみたいなやつ
25524/08/04(日)17:09:05No.1218395935+
イテレーターパターンとか組み込まれちゃってるから入門するとき混乱の元だと思う
ストラテジーパターンも述語を先知ってるとなんで?ってなる
25624/08/04(日)17:09:06No.1218395939+
>if(x=1);
>これが動くの本当に良くないと思う!
if(x);
これが動くの本当によくないと思う
25724/08/04(日)17:09:06No.1218395941+
ポインタはわかっておいたほうがいいですよ…!
25824/08/04(日)17:09:11No.1218395989+
>>それはenum型使えよ
>>bool型使うのはTRUEかFALSEかだ
>男はTRUEで女はFALSEとかやったらめどいことになりそうだよな
hasOpenis()実装しておいてTRUEかFALSE判定させれば解決!
25924/08/04(日)17:09:15No.1218396017+
>関数ポインタわかるやついる?
>俺はわからない
関数もメモリ上に配置されてるからポインタ(アドレス)がわかれば呼び出せるってことよ
要は関数型変数だ
26024/08/04(日)17:09:18No.1218396044そうだねx1
>>男はTRUEで女はFALSEとかやったらめどいことになりそうだよな
>Q.男であるか?
>A.TRUE
>の質問文でしかないからそこは特にどうでもいいんだよクソがァ!
でもマスタースレイブとかも言葉狩りにあってるわけだし…
26124/08/04(日)17:09:21No.1218396087+
>ポインタはあれだ
>デスクトップのショートカットみたいなやつ
絶対パスだな
26224/08/04(日)17:09:44No.1218396304+
関数のポインタなんだなあって意味はわかるはずなのに
実際にコーディングされたものをみると???ってなる
26324/08/04(日)17:09:54No.1218396422+
>hasOpenis()実装しておいてTRUEかFALSE判定させれば解決!
事故でおぺにす…失った男性はFALSE?
26424/08/04(日)17:10:01No.1218396480+
>Q.男であるか?
>A.TRUE
>の質問文でしかないからそこは特にどうでもいいんだよクソがァ!
トランスジェンダーの人に対応するために次のバージョンから他の選択肢も追加します!
26524/08/04(日)17:10:10No.1218396551そうだねx5
>if(x);
>これが動くの本当によくないと思う
これは動かないと困るだろ!?
26624/08/04(日)17:10:24No.1218396683+
>>hasOpenis()実装しておいてTRUEかFALSE判定させれば解決!
>事故でおぺにす…失った男性はFALSE?
メスだからな
26724/08/04(日)17:10:30No.1218396733+
実行時まで実行する関数が決められないときに使うだけだよ
26824/08/04(日)17:10:30No.1218396743+
mallocすき?
26924/08/04(日)17:10:47No.1218396862+
代入は<-にしろ=にするな
27024/08/04(日)17:11:30No.1218397142+
俺はFortranが本職だから…
27124/08/04(日)17:11:34No.1218397174+
>mallocすき?
C縛りなら使わないと成り立たん
27224/08/04(日)17:12:01No.1218397354+
代入するとき短絡評価使っていい?
27324/08/04(日)17:12:11No.1218397413+
>どうやって楽するかいつも考えてるぐらいのほうがプログラマ向いてる
プログラマの三大美徳!
怠惰!短気!傲慢!
27424/08/04(日)17:12:38No.1218397600+
>代入は<-にしろ=にするな
これやってる言語あるんかな
27524/08/04(日)17:12:45No.1218397652+
>代入するとき短絡評価使っていい?
素直に三項演算子を使え
27624/08/04(日)17:13:17No.1218397889+
>関数ポインタわかるやついる?
>俺はわからない
なんかf(x)って書いておいてfを後でsinとかcosに出来る奴だと思ってた
27724/08/04(日)17:13:21No.1218397910+
俺が最適化に頭捻るよりコンパイラに任せた方が大抵早いよ
27824/08/04(日)17:13:57No.1218398118+
>>代入は<-にしろ=にするな
>これやってる言語あるんかな
R
27924/08/04(日)17:14:08No.1218398214+
>これやってる言語あるんかな
verilogは<=を使うな=もあるけど
28024/08/04(日)17:14:35No.1218398458+
>>代入するとき短絡評価使っていい?
>素直に三項演算子を使え
Kotlin書き始めたらwhenの結果を型付きで代入できるようになってて最近の言語すんげえ~ってなってる

- GazouBBS + futaba-