プログラミング詳しい人ちょっときてええええええええええええええええ

技術
スポンサーリンク
1: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 08:56:52.544 ID:YfAtCxkh0
Hoge hoge = new Hoge();
Create(hoge);

hoge = Create();

どっちがいい?

引用元: ・プログラミング詳しい人ちょっときてええええええええええええええええ

63: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:25:56.059 ID:YfAtCxkh0
>>42
newはインスタンス生成
Createは中身を作るイメージ
言語はC++系

>>43
まあそうだけど
初期化に種類があるのはなんかね
何度も初期化するのもなんかね
だから生成

98: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:00:19.369 ID:JFtzknW5a
>>97
gcnew

99: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:04:31.464 ID:JFtzknW5a
>>94
何を生成するのか知らんがCreateはインスタント生成の意味合いが強いから初期化じゃないと言い張るならGenerateかなんか別の単語使えよ

9: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:00:21.848 ID:YfAtCxkh0
>>2
何の資源?

14: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:01:03.673 ID:NK6RVqf20
>>9
hddのbyte数

18: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:02:58.000 ID:YfAtCxkh0
>>15
後者はこれね

Hoge hoge = CreateHoge();

型もわかる

7: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:00:14.459 ID:XEeeICzEa
Hage hage = new hage()

27: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:08:10.019 ID:XKO9OeHp0
>>16
コンストラクタだってエラーが発生する場合はあるしエラー処理もできる

53: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:20:00.113 ID:z2If6Z+h0
>>38
コンストラクタの戻り値がインスタンスなんだが?
それ以前に例外とか知らないの?
try-catchも知らずにコード書いてるわけ?

73: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:34:03.638 ID:YfAtCxkh0
>>53
C++系の言語だけど例外がないんだ
言語に例外がないから例外を使えない

13: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:00:57.795 ID:YfAtCxkh0
>>10
後者はHogeCreate()の中で作る

24: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:07:34.942 ID:YfAtCxkh0
>>22
結果的にそうかも

64: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:26:59.307 ID:VPpv33WYa
>>54
スクリプト

80: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:40:55.686 ID:YfAtCxkh0
>>61
ぐぐったら例外処理がない言語だった

62: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:25:05.640 ID:XKO9OeHp0
>>52
まともな日本語ですべて再度回答しろ
特に「前者ならfalse、後者ならnullを返す」
何がしたいのか謎が深まるばかり

86: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:44:50.383 ID:YfAtCxkh0
>>62
falseやnullを返したら生成に失敗したことがわかる

>>66
似たようなものでしょ

100: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:04:43.377 ID:YfAtCxkh0
>>93
なるほど
生成の方法の異なるHogeを一つのHogeにしていたけど、Hogeの子クラスで種類で分けるのもいいな

>>91
俺しか読まないからなあ

>>92
たぶんnewがいらないかも

Hoge hoge; ←Hoge hoge = new Hoge();でなくてもいいかもいるかもだが
bool initSucceed = Create(hoge);

or

Hoge hoge = Hoge.Create();

のどちらか
ようは参照を渡して作るかインスタンスを返させて作るかどっちがいいかって話

108: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:13:10.723 ID:JFtzknW5a
>>102
だから特定のクラスインスタントを作るCreateはそのクラスに属するのstaticメンバ関数として定義しろよ

なんで無所属の関数にするんだ

104: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:08:51.844 ID:JFtzknW5a
>>100
所属不明なCreate関数作るのはヤメタマエ

106: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:10:49.497 ID:YfAtCxkh0
>>104
実際はHogeCreator.Create()

HogeCreator.CreateA()
HogeCreator.CreateB()
があるイメージ

65: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:28:45.442 ID:YfAtCxkh0
>>45
失敗は大切

>>51
似たようなもん

31: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:09:09.167 ID:VPpv33WYa
>>28
なぜ?

29: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:08:29.385 ID:9g2QG4Rna
newした後にcreateなんて言ってるからわからなくなる
セッターでも作れ

36: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:10:47.641 ID:XKO9OeHp0
>>30
日本語がやばい奴

何を
どうして
どうやって
 コンストラクタとCreateの中身

それぞれについて正常な日本語でどうぞ

39: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:12:08.788 ID:PtDZmg1S0
>>30
この数行じゃ何も変わらん
DIって考えだと前者の方が良い
hoge型の物を変換するだけで中身が変わる
後者はインスタンス生成に関わる処理をCreaterにまとめて持たせることが出来る

57: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:22:57.403 ID:YfAtCxkh0
>>37
CreateHoge()の中でnewする

>>39
後者はDI的によくないの?
Creatorで分離してるから依存しなくね?

67: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:29:09.478 ID:PtDZmg1S0
>>57
DI的に前者がいいの

タイヤ t = new 早いタイヤ
タイヤ t = new 遅いタイヤ

Create車(t)

ってやったときにCreate側は設定するだけの処理でいい
にも関わらずtの中身が早いタイヤなら早い車ができる
tが遅いタイヤなら遅い車ができる
外部から依存するものを入れるだけでCreate側は異なるものを単一コードで振り分けることが出来るようになる

タイヤで車の速度が変わらない!とか野暮なことは言わないでくれ

89: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:49:05.554 ID:YfAtCxkh0
>>67

後者の
Create早い車(t)
Create遅い車(t)

でも早い車と遅い車を作れると思うが・・・

ちなみに今回は早いHogeと遅いHogeがあるわけではなく、早くHogeを生成すると遅くHogeを生成するがあるようなもの
Hoge自体に種類はなく、生成方法に種類がある

33: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:09:31.029 ID:NK6RVqf20
短く書いた方が言語を理解している様に見える

44: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:15:34.077 ID:YfAtCxkh0
>>34
中身を作って入れるイメージだから初期化はなんか違う
種類もあるしね
何度も初期化するのは変だしいろんな初期化があるのも変
やっぱりCreateだね

48: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:18:04.593 ID:dbvNnk9D0
>>44
変数の違うコンストラクタたくさん作ればいいだろ

43: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:14:47.862 ID:SNxJ8ef6d
Create関数の役割は生成というより初期化か

47: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:16:19.793 ID:R9pD0mSld
何で一行目でインスタンス生成してるの?

49: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:18:54.879 ID:JFtzknW5a
だから何の言語だよ?

50: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:19:00.468 ID:VO8vqwdE0
newが嫌ならFactory Methodパターンでやれ

59: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:24:17.843 ID:WrDukv9SM
hogeの型がHogeなのかBoolなのかどうしたいのかよく分からないな

95: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:56:19.659 ID:JFtzknW5a
initsucceedだと別の意味になるから
この際Initalizedの方がいいか

96: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 09:56:34.068 ID:urVUzULuM
Hage hair = Hage.Create();
if( hair == null ) {
// hage
} else {
// fusa
}

105: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:09:08.830 ID:YfAtCxkh0
全くこれだけを説明してるのに何レスかかってるんだ・・・
お前ら理解悪すぎぃ・・・

112: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:26:53.925 ID:YfAtCxkh0
やっぱりnewはいらなかったわ

前者は
Hoge *hoge:
CreateHoge(hoge);

121: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:41:37.426 ID:XKO9OeHp0
>>119
根本的な部分から誤解してる

127: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:54:30.767 ID:JFtzknW5a
>>124
ヘッダさえ共通にしときゃいいだろ

122: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:41:53.643 ID:iv+2fF0Z0
クラスの設計が悪い

125: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 10:53:51.307 ID:iv+2fF0Z0
c++なら宣言と定義分けられるしょ

130: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 11:10:05.544 ID:oDvAdi9gd
何言語かを頑なに言わないのはなんか理由あんのか

134: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 12:03:54.930 ID:6Kvq2kXWd
まだやってたw
インターフェース使えば

135: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 12:11:46.131 ID:UQZUDWK2M
ばあいによりけりではあるんだけどあ
そもそも前者はCreateしてないのがよろしくない

138: 以下、5ちゃんねるからVIPがお送りします 2018/10/18(木) 13:23:17.399 ID:z2If6Z+h0
何の言語だよ
そんなクソ言語実在するのか?

技術
スポンサーリンク
りょうたろうをフォローする
スポンサーリンク
プログラミングまとめ速報ちゃんねる

コメント

タイトルとURLをコピーしました