C++でゲームプログラミングしているんだけど質問がある!

1 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:09:42 ID:ie+yrqr+0.net
newってどういう場面で使うの?

26 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:34:47 ID:qGbyiGAS0.net

つかわない

60 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:10:20 ID:ie+yrqr+0.net

>>59
なんで?

24 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:33:52.201 ID:ie+yrqr+0.net

というか日ごろから積極的に使ったりしているの?

59 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:09:34 ID:39xDHkDH0.net

>>57
今のコード見せてよ

54 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:02:13 ID:ie+yrqr+0.net

そもそも直接クラスに送らないで
上のクラスで判定してる

50 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:00:52 ID:ie+yrqr+0.net

>>49
正直どちらでもいいような気はしている

51 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:01:04 ID:39xDHkDH0.net

>>38
違うBクラスに使われるかも知れない
BBB.func(AA)みたいに
共有したいならいいかもしれないけど明らかに自分しか使わないものは

67 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:18:27 ID:L5UNIv7p0.net

>>30にしたって別に

class B
{
public:
A a;
B() : a(1) {};
};

でいいやん

20 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:31:42 ID:ie+yrqr+0.net

>>19
全部スタティックでもいいの?

63 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:12:46 ID:g3xnqz370.net

けちんぼ!

23 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:33:50.530 ID:39xDHkDH0.net

派生クラス使うときnew使うだろ

72 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:27:14 ID:ie+yrqr+0.net

>>71
うん

62 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:12:44 ID:ie+yrqr+0.net

>>61
何を?

82 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:07:17 ID:01OkFk1S0.net

>>81
std::vector使わんのか?
Cじゃないんだから生配列はやめようぜ
可変長が嫌ならstd::arrayでもいい

41 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:55:44 ID:ie+yrqr+0.net

>>39
参照渡ししているの?

61 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:12:01 ID:39xDHkDH0.net

試しに変更してみるから

22 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:33:49.408 ID:Iiozp4aX0.net

メソッドだかメンバ関数だかよく知らんけど全部staticでいいなら使う必要はないよ

83 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:13:58 ID:ie+yrqr+0.net

>>82
使ってない!
ベクターはどういう時に使うの?

25 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:34:34 ID:ie+yrqr+0.net

>>23
派生クラスを作った事がないんだけど・・・やばい?

86 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:17:13 ID:LjqYv2Su0.net

>>47
C++にはエレガントな書き方とダサい書き方があるんだけど、ダサい書き方で説明すると
こういうデータとこういう機能をワンセットにしたというのがクラス
このクラスを実体化させるときにnewを使って、newを使ってできたものをインスタンスという
クラスの時点ではそれは設計図のようなもので、実体化した製品ではない。

マウスで例えると、マウスの設計図がクラスでお前が手に持ってるマウスはクラスが実体化したインスタンスになる

エレガントな書き方はオブジェクト指向をしゃぶりつくしたような奴でないと理解できないのでお前にはまだ早い
どうしても知りたかったらデザインパターンでググれ

89 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:20:07 ID:ie+yrqr+0.net

>>86
なんていうか僕の書き方はもっともダサい書きかたな気がする
イメージとしては構造体+メソッドを一緒に書けるだけ
むしろ構造体を別ファイルに書けるとしか思ってない
必要なデータはすべて最初に宣言してゼロクリアして
必要な数だけ判定して用意する
というかそうしないと判定のやり方が分からない

97 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:41:01 ID:ie+yrqr+0.net

知らないのに煽られているとしか思えないw

99 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:42:57 ID:w1rrdmIg0.net

例えば、モンスターの出現数をランダムにする時にnewかな

29 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:40:39 ID:01OkFk1S0.net

ゲームエンジン作ってるわけでもなく
まだnewの使い時が分からないレベルなら
大人しくUnity×C#にしといた方がいいぞ

まあ正直new使うことほぼ無いと思うが

90 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:22:44 ID:ie+yrqr+0.net

>>88
配列って
aaa[10];の事でしょ?
aaa[???]を生み出せるのがベクターということ?
aaa[10];の場合はアレイっての使うの?
ぶっちゃけaaa[???]が出来ないから困ってはいる
ベクターを使う時にnewを使うの?

27 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:35:33 ID:ie+yrqr+0.net

派生クラスを勉強するとnewを使い始めると言う事?

69 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:20:27 ID:ie+yrqr+0.net

class B
{
public:
A a;
B() : a(1) {};
};

B BB[10];とかにしたら無駄に9個増えるw

66 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:15:42 ID:ie+yrqr+0.net

>>65
しらん!本に書いてあっただけだから

3 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:10:52 ID:39xDHkDH0.net

わかる
ユニークポインタで良くね

76 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:31:36 ID:39xDHkDH0.net

宣言できないと思ってた

87 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:17:13 ID:ie+yrqr+0.net

モンスターとかも必要数だけで
すべてゼロクリアして置いておくものなんじゃないのかな?と考えているんだよね
そうしないと判定が難し過ぎる・・・
というか処理がごろっと変わるというかやり方が分からない

45 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:57:35 ID:ie+yrqr+0.net

クラスを派生させた事がない!

42 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:56:39 ID:+8Vj5BOz0.net

>>20
いいわけねーだろ

85 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:15:34 ID:01OkFk1S0.net

push_backの引数で直接newしたら確実にメモリリークしそうだが

56 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:02:57 ID:SfDMjF840.net

>>53
状態を持たないってことじゃないの?

32 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:43:04 ID:ie+yrqr+0.net

正直最近なんで1から作っているんだろうと疑問は感じている・・・

8 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:17:48 ID:tMvrXOI0a.net

>>7
そう

4 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:11:39 ID:Iiozp4aX0.net

インスタンスを生成するとき

75 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:29:36 ID:ie+yrqr+0.net

>>73
A AA;
B BB[10];

BB.func(AA);ならAは1個じゃん
上のやり方だとAAが10個出来てる

46 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:57:48 ID:39xDHkDH0.net

C♯とかjavaはメモリ管理勝手にやってくれるらしいよね

52 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:01:24 ID:SfDMjF840.net

継承はつかわなくてもいいけど
プログラムを個々のパーツに分けて考えたらnewの意味がわかる
無関係の処理とデータが横並びでずらっとあると使い方分からんだろ

21 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:32:11.637 ID:ie+yrqr+0.net

こういう時には使った方が良いよとかあれば知りたい

70 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:22:27 ID:39xDHkDH0.net

>>67
基底のコンストラクタがありません。

53 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 07:01:41 ID:01OkFk1S0.net

スタティックってどういう意味で使ってるんだ?
C/C++のstaticは意味が多すぎて単にスタティックと言われても何を指してるのかわからない

28 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:35:59 ID:ie+yrqr+0.net

>>26
使わなくても問題ない?

17 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:29:03 ID:ie+yrqr+0.net

グローバル変数も全部一番上でクラスにして
引数で渡してしまえば使う必要はないじゃん?
でも具体的にどういう場面で使うのかなと
const化して定数にするとか?

9 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:18:30 ID:ie+yrqr+0.net

>>8
具体的にどういう時に使うの?

95 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:31:52 ID:ie+yrqr+0.net

C言語だけ特殊で動的確保とかいうわけわかめが出来る
マーロックとニューだと思うけど・・・意味が分からない
高度過ぎて謎すぎる

10 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 06:19:52 ID:hM7y/b8S0.net

スタティックおじさんかな?

94 :以下、?ちゃんねるからVIPがお送りします:2020/05/01(金) 08:31:03 ID:ie+yrqr+0.net

Javaとかはすべて静的に確保するじゃん
Unityもやればわかるけど
すべて最初に静的確保後にゼロクリアしてる

Twitterでフォローしよう

おすすめの記事