C言語なら俺に聞け 151

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ cf8f-fy95)2019/04/02(火) 11:23:37.62ID:SQXqRaAc0
!extend:checked:vvvvv:1000:512
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

0952デフォルトの名無しさん (アウアウカー Sac3-H7EU)2019/06/16(日) 23:43:48.77ID:3o8UCwiCa
そうね、なんか前後に処理を入れるくらいの使い方はある。
でもそもそもその値を使う処理をそのクラスに持たせるのが隠蔽ということだね。

0953デフォルトの名無しさん (ワッチョイ 4e63-YCmz)2019/06/16(日) 23:45:38.60ID:7nwjMCFt0
今の仕組み上での利点としては
GetterSetter作ることで
インターフェースに適合させれるようになる

Cは知らん

0954デフォルトの名無しさん (ワッチョイ 9a79-YCmz)2019/06/17(月) 00:04:18.25ID:0K02i6cy0
Cのスレで言っても仕方ないが
オブジェクト指向においてクラス外からフィールドに直接アクセスするのは禁じ手だぞ

0955デフォルトの名無しさん (ワッチョイ 5a73-YCmz)2019/06/17(月) 00:10:42.98ID:seiOMGnS0
getter/setterなんてうざいだけだぜ
メンバ変数直でいいじゃん

0956デフォルトの名無しさん (アウアウカー Sac3-H7EU)2019/06/17(月) 00:23:14.51ID:YSrJE9j8a
>>954
そうそう、だからゲッターは駄目なんだよね。
C++でclassとstructのアクセス範囲が異なる理由がわかってない人が多すぎる。

0957デフォルトの名無しさん (ワッチョイ 9a79-YCmz)2019/06/17(月) 00:26:17.86ID:0K02i6cy0
>>955
お前には一生オブジェクト指向は無理だな

0958デフォルトの名無しさん (アウアウカー Sac3-H7EU)2019/06/17(月) 00:39:11.63ID:YSrJE9j8a
まあ、ゲッター使うのはバカ。
データとメソッドを集約しないのはオブジェクト指向ではない。
ゲッターとセッターしかないオブジェクトなんて構造体で充分。

0959デフォルトの名無しさん (ワッチョイ 3352-9ye8)2019/06/17(月) 01:11:23.59ID:J2deS77t0
たしかPythonだとgetterもsetterも推奨されてないんだっけ?

0960デフォルトの名無しさん (ワッチョイ 7602-byPh)2019/06/17(月) 02:13:20.34ID:BSqpudUb0
文字列クラスで文字数返すやつなんかはゲッターの一種だが、ああいうのは必用だよな。
文字数指定する事が出来るようにする場合もセッター必用だよな。

0961デフォルトの名無しさん (ワッチョイ f3f6-2qry)2019/06/17(月) 06:18:25.03ID:6C3tyyZH0
データメンバ直でもラッパーを挟めるなら問題なし

0962デフォルトの名無しさん (ラクペッ MM73-WxcC)2019/06/17(月) 07:27:38.45ID:yl5KJ/vEM
問題ないというよりも下手な設計をとりあえずカプセル化する時はラッパー被せて誤魔化すしかない

0963デフォルトの名無しさん (ワッチョイ a3e8-AFaF)2019/06/17(月) 08:27:04.42ID:ikLTlFyV0
ゲッタって仮想関数にする?

0964デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 08:52:31.79ID:sn1adIo3a
ラッパーって関数に対して被せるもんだろ?
メンバー変数のラッパーってなんだよ

0965デフォルトの名無しさん (ワッチョイ 4e69-oJPG)2019/06/17(月) 08:57:03.61ID:mR1b1vjg0
「メンバ書き換えたから更新よろしくな関数」の呼び出しで
やっと内部状態が変更するようなしくみ?

0966デフォルトの名無しさん (ワッチョイ 3e7c-YCmz)2019/06/17(月) 09:09:34.98ID:8UjaS7YF0
>>960
ゲッターとセッターは使わないのが主流

とくにゲッターとか名前からしておっかねーだろ

0967デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 09:34:11.11ID:sn1adIo3a
真とかエンペラーとかいろいろあるしな

0968デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 12:37:41.39ID:WHxj8IY7a
>>966
え?でも値のセットや取得時に何か処理が必要なやつはゲッターやセッターではないの?
名前がそれっぽくなくて普通のメソッドだったとしても機能としてはそうなるよな。

0969デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 12:44:11.30ID:6pEy3XEna
>>968
だから、何故値を取得する必要があるのかと

0970デフォルトの名無しさん (ワッチョイ 9a79-YCmz)2019/06/17(月) 13:06:30.69ID:0K02i6cy0
値を取得する必要ガーとか馬鹿なのか?
主要言語の標準ライブラリにGetterを含まないクラスとかまず無いぞ

0971デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 13:27:51.70ID:6pEy3XEna
>>970
引数のvoid見たこともないのによくそんなこと言えるな…

0972デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 13:33:44.73ID:WHxj8IY7a
>>969
例えばファイルデスクリプタのようなものもそのデスクリプタによって識別されるファイルに関する情報の読み書きをするオブジェクトと言えるが、それ使ってファイルのバイト数を取得するとかデータを読み書きするとか、普通にやるよね。

0973デフォルトの名無しさん (ワッチョイ 8b01-zlGV)2019/06/17(月) 13:42:27.76ID:qKjcjk6x0
猿でもわかるポインタって本誰か出せよ

0974デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 14:24:17.06ID:6pEy3XEna
>>968
そのオブジェクトの中で密接にデータと関連する処理だったらゲッターは使わんでしょう。this->hogeを直接使うだけ。
あとたぶんあなたの場合はセッターゲッターの神髄を知らんと思う。単に構造体のメンバーにアクセスするだけのメソッドをイメージしてもらえれば。

0975デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 14:25:01.27ID:6pEy3XEna
974は972あてね

0976デフォルトの名無しさん (ワッチョイ 1aa5-Rc2r)2019/06/17(月) 14:25:36.67ID:FBMbqlks0

0977デフォルトの名無しさん (ラクペッ MM73-WxcC)2019/06/17(月) 14:40:56.45ID:lfEwbGXOM
同一インスタンス内なら余計なことしなくても直接アクセスできる
セッターゲッターは他のインスタンスの変数にアクセスするための手段
オブジェクト間のメッセージパッシングにセッターやゲッターを利用する

0978デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 14:41:55.67ID:WHxj8IY7a
>>974
あー。それでもリードオンリーにしたい時に言語にその機能がないならゲッターだけ作るよね。
Kotlinの場合はvalで済んじゃってしかも自動でゲッター作られてるけど。

で、真髄って何?

0979デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 15:00:44.76ID:6pEy3XEna
>>978
リードオンリーとか言わず、読ませなきゃいいじゃん

0980デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 15:49:21.53ID:WHxj8IY7a
>>979
上で書いた文字列クラスの場合の文字数とかファイルのバイト数とか、外部から読めないとまずいものがあると思うんだが。

0981デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 15:57:28.98ID:6pEy3XEna
>>980
たとえばstd::stringのメソッドでgetってついてるのget_allocatorとgetlineくらいだよね。setなんてないし。
ゲッター感のあるやつ無くない?要らないのでは?

0982デフォルトの名無しさん (ラクペッ MM73-WxcC)2019/06/17(月) 16:10:03.98ID:qeDnhEK2M
メンバー変数はreadonlyなどの属性ではなくてprivateアクセス権限を設定して他オブジェクトから隠蔽するのが一般的

0983デフォルトの名無しさん (ワッチョイ 9a79-YCmz)2019/06/17(月) 17:25:37.86ID:0K02i6cy0
なんでC++とかいう後付けのオブジェクト指向もどき言語で延々と語ってるんだろうか…

0984デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 17:48:43.23ID:6pEy3XEna
>>983
そりゃもう、javaについで保守的だから。
他の意識高い感じの言語だとゲッターセッターなんて発想はありえないでしょ。

0985デフォルトの名無しさん (ワッチョイ 9a79-YCmz)2019/06/17(月) 17:52:05.72ID:0K02i6cy0
>>984
保守的?単なる継ぎ接ぎの欠陥言語だぞ

C#だとプロパティで隠蔽されてるが結局はGetter/Setterだな

0986デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 18:00:37.93ID:6pEy3XEna
>>985
つまり、Cの構造体アクセスは実質ゲッターセッターだという主張か?

0987デフォルトの名無しさん (ワッチョイ 9a79-YCmz)2019/06/17(月) 18:01:53.33ID:0K02i6cy0
>>986
お前は何を言ってるんだ…

0988デフォルトの名無しさん (アウアウエー Sa52-H7EU)2019/06/17(月) 18:11:27.38ID:6pEy3XEna
>>987
引数void馬鹿を馬鹿にしてんだよ。わからんか?

0989蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-1i7F)2019/06/17(月) 18:13:51.25ID:Qf1//+vQd
そろそろ次のスレ

0990デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 18:24:49.71ID:3L1/L9kLa
>>981
うーん。C++のクラスで喩えられてもすがわからんなあ。C++この頃全然やってないし。
昔ちょっとC++Builder使ったことあるがDelphiの延長線上の使い方しかしなかったし。

とりあえずJavaで言うとそれは何にあたるんだ?
Kotlinでもいいぞ。

0991デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 18:26:16.26ID:3L1/L9kLa
すが、じゃねえ、すぐだ。
スマホだと間違いが変になるな。

0992デフォルトの名無しさん (アウアウウー Sac7-7DQ/)2019/06/17(月) 18:28:01.53ID:3L1/L9kLa
次スレ

C言語なら俺に聞け 152
https://mevius.5ch.net/test/read.cgi/tech/1560763630/

0993デフォルトの名無しさん (ワッチョイ a37b-RuXw)2019/06/17(月) 19:42:03.79ID:biel+EqR0
>>992
>>2-3 あたりの
「次スレを作るときは…」の説明を書き足さなくて良いのかしら?
自分、その辺の正しい立て方を知らず下手に書き加えられないので指摘だけ。

0994デフォルトの名無しさん (ワッチョイ 4e63-9ye8)2019/06/17(月) 20:01:23.71ID:vIcnvKOP0
IDを非表示にする場合
!extend:none::1000:512

IDを表示し、強制コテハンは表示しない(5ch標準設定と同じ)
!extend:checked::1000:512

IDを表示し、IPアドレスを表示
!extend:checked:vvvv:1000:512

IDを表示し、強制コテハンを表示
(レスの名前欄に「ワッチョイ」「スプー」「ササクッテロ 」などのニックネームがつく)
!extend:checked:vvvvv:1000:512 ← 今はこれ

IDを表示し、IPアドレスと強制コテハンを表示
!extend:checked:vvvvvv:1000:512

RONIN使えばまた表示を消せるので、強制とは言いがたいが

0995デフォルトの名無しさん (ワッチョイ 5ac5-YCmz)2019/06/17(月) 20:16:07.33ID:/ODDlXVN0
ああワッチョイ消してる奴ってRONIN使ってるのか
知らなかったな

0996デフォルトの名無しさん (ワッチョイ 6301-AFaF)2019/06/17(月) 20:27:33.84ID:IK9o4iD50
密結合を避ける

0997 ◆QZaw55cn4c (ワッチョイ ba47-FGjx)2019/06/17(月) 20:55:12.93ID:mDiaA7dQ0
>>995
RONIN 餅ですがワッチョイの消し方がわからないのです、消すつもりもないのですが…

0998デフォルトの名無しさん (ワッチョイ 3352-9ye8)2019/06/17(月) 21:23:19.93ID:J2deS77t0
名前欄に!slip:verboseじゃないの?
コテハンとかはどうなるかまでは知らないけど

0999 ◆Ir/UpJ7SUVFO (ワッチョイ ba47-FGjx)2019/06/17(月) 21:26:41.57ID:mDiaA7dQ0
>>998
どれどれ、試してみましょうか…

1000デフォルトの名無しさん (ワッチョイ f3f6-2qry)2019/06/17(月) 21:29:58.20ID:6C3tyyZH0
>>945
そんなことはどうでもいい
C99ではどうたらを早く説明しろ

 逃 げ ん な こ ら !

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 76日 10時間 6分 21秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。