C言語なら俺に聞け 151at TECH
C言語なら俺に聞け 151 - 暇つぶし2ch981:デフォルトの名無しさん
19/06/16 23:34:39.49 Fv7+hlk/0.net
昔ゲッターセッターってスレッドセーフにするための仕組みだと思ってた。
それくらいしか意味が思いつかなかった…

982:デフォルトの名無しさん
19/06/16 23:43:48.77 3o8UCwiCa.net
そうね、なんか前後に処理を入れるくらいの使い方はある。
でもそもそもその値を使う処理をそのクラスに持たせるのが隠蔽ということだね。

983:デフォルトの名無しさん
19/06/16 23:45:38.60 7nwjMCFt0.net
今の仕組み上での利点としては
GetterSetter作ることで
インターフェースに適合させれるようになる
Cは知らん

984:デフォルトの名無しさん
19/06/17 00:04:18.25 0K02i6cy0.net
Cのスレで


985:言っても仕方ないが オブジェクト指向においてクラス外からフィールドに直接アクセスするのは禁じ手だぞ



986:デフォルトの名無しさん
19/06/17 00:10:42.98 seiOMGnS0.net
getter/setterなんてうざいだけだぜ
メンバ変数直でいいじゃん

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

988:デフォルトの名無しさん
19/06/17 00:26:17.86 0K02i6cy0.net
>>955
お前には一生オブジェクト指向は無理だな

989:デフォルトの名無しさん
19/06/17 00:39:11.63 YSrJE9j8a.net
まあ、ゲッター使うのはバカ。
データとメソッドを集約しないのはオブジェクト指向ではない。
ゲッターとセッターしかないオブジェクトなんて構造体で充分。

990:デフォルトの名無しさん
19/06/17 01:11:23.59 J2deS77t0.net
たしかPythonだとgetterもsetterも推奨されてないんだっけ?

991:デフォルトの名無しさん
19/06/17 02:13:20.34 BSqpudUb0.net
文字列クラスで文字数返すやつなんかはゲッターの一種だが、ああいうのは必用だよな。
文字数指定する事が出来るようにする場合もセッター必用だよな。

992:デフォルトの名無しさん
19/06/17 06:18:25.03 6C3tyyZH0.net
データメンバ直でもラッパーを挟めるなら問題なし

993:デフォルトの名無しさん
19/06/17 07:27:38.45 yl5KJ/vEM.net
問題ないというよりも下手な設計をとりあえずカプセル化する時はラッパー被せて誤魔化すしかない

994:デフォルトの名無しさん
19/06/17 08:27:04.42 ikLTlFyV0.net
ゲッタって仮想関数にする?

995:デフォルトの名無しさん
19/06/17 08:52:31.79 sn1adIo3a.net
ラッパーって関数に対して被せるもんだろ?
メンバー変数のラッパーってなんだよ

996:デフォルトの名無しさん
19/06/17 08:57:03.61 mR1b1vjg0.net
「メンバ書き換えたから更新よろしくな関数」の呼び出しで
やっと内部状態が変更するようなしくみ?

997:デフォルトの名無しさん
19/06/17 09:09:34.98 8UjaS7YF0.net
>>960
ゲッターとセッターは使わないのが主流
とくにゲッターとか名前からしておっかねーだろ

998:デフォルトの名無しさん
19/06/17 09:34:11.11 sn1adIo3a.net
真とかエンペラーとかいろいろあるしな

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

1000:デフォルトの名無しさん
19/06/17 12:44:11.30 6pEy3XEna.net
>>968
だから、何故値を取得する必要があるのかと

1001:デフォルトの名無しさん
19/06/17 13:06:30.69 0K02i6cy0.net
値を取得する必要ガーとか馬鹿なのか?
主要言語の標準ライブラリにGetterを含まないクラスとかまず無いぞ

1002:デフォルトの名無しさん
19/06/17 13:27:51.70 6pEy3XEna.net
>>970
引数のvoid見たこともないのによくそんなこと言えるな…

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

1004:デフォルトの名無しさん
19/06/17 13:42:27.76 qKjcjk6x0.net
猿でもわかるポインタって本誰か出せよ

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

1006:デフォルトの名無しさん
19/06/17 14:25:01.27 6pEy3XEna.net
974は972あてね

1007:デフォルトの名無しさん
19/06/17 14:25:36.67 FBMbqlks0.net
>>968
URLリンク(dotup.org)
ゲッターはあぶない

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

1009:デフォルトの名無しさん
19/06/17 14:41:55.67 WHxj8IY7a.net
>>974
あー。それでもリードオンリーにしたい時に言語にその機能がないならゲッターだけ作るよね。
Kotlinの場合はvalで済んじゃってしかも自動でゲッター作られてるけど。
で、真髄って何?

1010:デフォルトの名無しさん
19/06/17 15:00:44.76 6pEy3XEna.net
>>978
リードオンリーとか言わず、読ませなきゃいいじゃん

1011:デフォルトの名無しさん
19/06/17 15:49:21.53 WHxj8IY7a.net
>>979
上で書いた文字列クラスの場合の文字数とかファイルのバイト数とか、外部から読めないとまずいものがあると思うんだが。

1012:デフォルトの名無しさん
19/06/17 15:57:28.98 6pEy3XEna.net
>>980
たとえばstd::stringのメソッドでgetってついてるのget_allocatorとgetlineくらいだよね。setなんてないし。
ゲッター感のあるやつ無くない?要らないのでは?

1013:デフォルトの名無しさん
19/06/17 16:10:03.98 qeDnhEK2M.net
メンバー変数はreadonlyなどの属性ではなくてprivateアクセス権限を設定して他オブジェクトから隠蔽するのが一般的

1014:デフォルトの名無しさん
19/06/17 17:25:37.86 0K02i6cy0.net
なんでC++とかいう後付けのオブジェクト指向もどき言語で延々と語ってるんだろうか…

1015:デフォルトの名無しさん
19/06/17 17:48:43.23 6pEy3XEna.net
>>983
そりゃもう、javaについで保守的だから。
他の意識高い感じの言語だとゲッターセッターなんて発想はありえないでしょ。

1016:デフォルトの名無しさん
19/06/17 17:52:05.72 0K02i6cy0.net
>>984
保守的?単なる継ぎ接ぎの欠陥言語だぞ
C#だとプロパティで隠蔽されてるが結局はGetter/Setterだな

1017:デフォルトの名無しさん
19/06/17 18:00:37.93 6pEy3XEna.net
>>985
つまり、Cの構造体アクセスは実質ゲッターセッターだという主張か?

1018:デフォルトの名無しさん
19/06/17 18:01:53.33 0K02i6cy0.net
>>986
お前は何を言ってるんだ…

1019:デフォルトの名無しさん
19/06/17 18:11:27.38 6pEy3XEna.net
>>987
引数void馬鹿を馬鹿にしてんだよ。わからんか?

1020:蟻人間
19/06/17 18:13:51.25 Qf1//+vQd.net
そろそろ次のスレ

1021:デフォルトの名無しさん
19/06/17 18:24:49.71 3L1/L9kLa.net
>>981
うーん。C++のクラスで喩えられてもすがわからんなあ。C++この頃全然やってないし。
昔ちょっとC++Builder使ったことあるがDelphiの延長線上の使い方しかしなかったし。
とりあえずJavaで言うとそれは何にあたるんだ?
Kotlinでもいいぞ。

1022:デフォルトの名無しさん
19/06/17 18:26:16.26 3L1/L9kLa.net
すが、じゃねえ、すぐだ。
スマホだと間違いが変になるな。

1023:デフォルトの名無しさん
19/06/17 18:28:01.53 3L1/L9kLa.net
次スレ
C言語なら俺に聞け 152
スレリンク(tech板)

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

1025:デフォルトの名無しさん
19/06/17 20:01:23.71 vIcnvKOP0.net
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使えばまた表示を消せるので、強制とは言いがたいが

1026:デフォルトの名無しさん
19/06/17 20:16:07.33 /ODDlXVN0.net
ああワッチョイ消してる奴ってRONIN使ってるのか
知らなかったな

1027:デフォルトの名無しさん
19/06/17 20:27:33.84 IK9o4iD50.net
密結合を避ける

1028:
19/06/17 20:55:12.93 mDiaA7dQ0.net
>>995
RONIN 餅ですがワッチョイの消し方がわからないのです、消すつもりもないのですが…

1029:デフォルトの名無しさん
19/06/17 21:23:19.93 J2deS77t0.net
名前欄に!slip:verboseじゃないの?
コテハンとかはどうなるかまでは知らないけど

1030:
19/06/17 21:26:41.57 mDiaA7dQ0.net
>>998
どれどれ、試してみましょうか…

1031:デフォルトの名無しさん
19/06/17 21:29:58.20 6C3tyyZH0.net
>>945
そんなことはどうでもいい
C99ではどうたらを早く説明しろ
 逃 げ ん な こ ら !

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

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch