学童のためのEOPです。 - ページ 14

 
Alexey Viktorov:

もうひとつ、変数の宣言、ポインタの取得/作成、オブジェクトのインスタンスの作成はどう違うのでしょうか。違いではなく、どのような場合に使うのが良いのか。例えば、ポジションを開くための変数を宣言するだけでも十分です。

そして、どんな場合にポインターを使った方がいいのか、どんな場合にオブジェクトのインスタンスがないとやっていけないのか、などです。

ある方法と別の方法の長所と短所は何ですか?

だから、この授業をガッツリ受けてください!チーズで利用できます。そこでは何も重要なものは作られず、ただメソッドの集合があるだけです。

 
Alexey Viktorov:

そこで、何を選ぶべきかを理解するために、このような質問がなされたのです。呪術師のコンテストのためではない。

今はとてもシラフでもないのですが、試してみようと思います。信頼性が第一なら、可能ならRAIIの原則に従うことがあなたのすべてです(オブジェクトを宣言すると、コンパイラはそれが可視領域を離れたときにそれを殺します)。コードの効率化を求めるなら、すべてがポインタの方向に向いている。だから、それぞれのタスクが考え抜けばいいのであって、普遍的な解決策はない。
 
Alexey Viktorov:

そこで、何を選ぶべきかを理解するために、このような質問がなされたのです。呪術師のコンテストのためではない。

私の理解では
オブジェクトがスタックごとに作成されるのであれば、例えばリクエストを扱うクラスなど、長生きせずオブジェクトを作成する 速度が必要なオブジェクトにのみ適用すればよい。
ヒープ上のオブジェクトは、超高速を必要としない長寿命のオブジェクトや、紛失を避けるために重要なオブジェクトを作成する必要があります。
例えばVSでは、コンパイラはスタックを選択させず、ヒープだけを提供する、つまり、このオブジェクトには何が最適かを教えてくれることがあります。

 
Roman:

私の理解では
オブジェクトがスタックごとに作成されるのであれば、例えばリクエストを扱うクラスなど、長生きせずオブジェクトの作成 速度が必要なものだけにすればよい。
ヒープ上のオブジェクトは、超高速を必要としない長寿命のオブジェクトや、紛失を避けるために重要なオブジェクトを作成する必要があります。
また、例えばVSでは、コンパイラがスタックを選択できず、ヒープだけを提供する、つまり、このオブジェクトには何が良いかを教えてくれることもあります。

いいえ。正直言って、私も以前は勘違いしていました。オブジェクトがスタック上に作成される場合、とにかくヒープに割り当てられ、ポインタだけがスタック上に作成されます。単純にCObg objを宣言すると、そのデストラクタはobjがスコープから出るときに呼ばれることが保証されます。
 
Vladimir Simakov:
いいえ、そんなことはありません。すみません、私も一度勘違いしていました。オブジェクトがスタック上に作成される場合、とにかくヒープに割り当てられ、ポインタだけがスタック上に作成されます。 CObg objを宣言したとき、そのデストラクタはobjがその可視領域から離れるときに呼ばれることが保証されているというだけの話です。

もしかしたら、ヒープに割り当てられるかもしれませんね ))
しかし、多くの人は、オブジェクトはスタック上でより速く作成されると主張する。
どうもみんな勘違いしているような気がしてならないのですが、どうなんでしょう ))

 
Roman:

もしかしたら、パイルに割り当てられるのかもしれませんが、わかりません ))
しかし、多くの人が、スタック上ではオブジェクトの作成が速くなると主張しています。
どうもみんな勘違いしているような気がしてならないのですが、どうなんでしょう ))

迷ったら確認することを、なぜ止めるのでしょうか?すでに検証され、証明されているのに、なぜ小馬鹿にし続けるのか。

 
Dmitry Fedoseev:

迷ったら確認することを、なぜ止めるのでしょうか?すでにテストされ、証明されているのに、なぜごまかし続けるのか?

間違いないです ))でも、どうにかしてそうなっていないことを確認するためでもあります。
先ほど書いていただいたばかりなので、すでに検証され実証されているのであれば、古参のコーデとして信頼できます))。
この違い、積み重ね、積み重ねはあまり気にしないのですが、たまに気になることがあります。

 

みんな、私は逆行なんだけど、スタック(最初に格納された値を最後に取り出す場合)とキュー(先入れ先出しの場合)があるんだ。

ヒープとは何ですか?

 
Alexey Viktorov:

だから、何を選べばいいのかを理解するために質問されたのです。魔法使いのクイズではありません。

そうそう、書き忘れましたが、ヒープ上に複数のオブジェクトを作成した場合、作成時と逆の順序で削除することをお勧めします。

 
Roman:

そうそう、書き忘れましたが、ヒープ上に複数のオブジェクトが作成された場合、作成された逆順に削除することが推奨されています。

つまり、ヒープはスタックなんですね。