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

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

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

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

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

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

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

>>7
そう

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

C++でポインタ使う場面とかほぼ無くね?

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

何言ってんだこいつ…頭悪すぎる

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

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

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

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

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

趣味?

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

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

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

pushbackだっけ?追加するの
それ使うときは使う

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

もうやめよう
知らないのに知ったかで煽って来られても困る・・・

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

嫌と言うか可変長の判定処理方法がわからない・・・
なんでもかんでもクラスにすると判定が出来なくなる・・・

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

class data{}
class neko{}

data datadata;
neko nekoneko(detadata);

みたいな感じにしてると思うたぶん

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

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

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

なんかわからなくてモゾモゾする!

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

Javaが全て静的に確保でCだけが動的確保可能?まじで何いってんだこいつ
Javaは全部シングルトンでインスタンスなんて概念は存在しないってか?
勉強し直せとしか言えないな

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

けちんぼ!

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

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

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

ミス
AA=new A(1);

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

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

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

>>59
なんで?

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

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

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

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

>>61
何を?

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

>>46
C#もJavaも全部スタティックでしょ?

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

>>69
いやどっちの方法でもAは10個生成されるが

>>70
A(int)コンストラクタで初期化できてるが

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

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

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

>>80
なにそれ?

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

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

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

試しに変更してみるから

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

newしないということはつまりメモリの開放を一切行わないというわけで
つまりメモリ効率が常に最悪なわけで

メモリ潤沢なPCならともかく、スマホやコンシューマでそんなプログラムが動くわけがない

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

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

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個出来てる

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

宣言できないと思ってた

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

メモリが無限にあるならnewしなくていいよ

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

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

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

>>6
現在のネストを抜けても残したい場合に使うって事?
例えば、一度クラスから抜けて
他のクラスを宣言した時にまた使いたい時などに使うって事?

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

class neko{}
ってのがあったとして

neko nekoneko;

じゃだめなの?

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

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

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

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

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

おちんぽ!

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

>>30にしたって別に

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

でいいやん

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

>>40
でもUnityとかって全部スタティック宣言じゃないの?
最初にすべてのオブジェクトのデータを入れるじゃん

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

俺は基底コンストラクタ作りたくないときにポインタ使う

class A
{ 
public:
A(int i){};
}
class B
{ 
public:
A* AA;
B(){AA=new A();};
}

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

>>57
「モンスターとかを全部newで作る物なのかな?」とか書いてるけど
逆にお前のコードは
enemy Enemy[5]
とかって宣言してるの?

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

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

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

>>67
それは無駄に増えるじゃんww

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

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

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

>>91
Unityとかやったけど
オブジェクト指向って基本的にすべて静的に確保しているよね?
そして全部ゼロクリアしてる
可変長なんて使わないよね?

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

>>58
ほんとぉ?
参照もポインタも同速じゃね?
ベンチマーク取ってみたか?

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

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

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

>>44
どういう時に使うか教えてほしい

Twitterでフォローしよう

おすすめの記事