C ++でオブジェクトを破棄する方法

user11308226

C ++でテトロミノのクラスがあります。そのコンソールゲームと私がしていることは、bと呼ばれるラインオブジェクトから始めることです。次に、ユーザー入力に基づいて、ゲームループでbを使用してメソッドなどを実行します。ブロックが地面に着いたら、それを破壊して、bという新しいオブジェクトを作成したいと思います。この新しいオブジェクトbも今のところ線になります。同じ名前で新しいオブジェクトを作成するときにメソッドが新しいオブジェクトで呼び出されるように、最初のオブジェクトを消去するにはどうすればよいですか?これまでのところ、私のコードは次のようになっています。

line b
while(!loss) {
     b.put();
     printmap();
     if(b.collision) {
         delete &b; //delete old b
         line b; //create new object also called b so that the same methods and logic run on this new object
     }
     b.y++;
     b.clear();
     system("cls");
}
エエロリカ
delete &b;

あなたはそれをしないかもしれません。delete非配列の割り当てから返されたポインタでのみ使用する必要がありnewます。&b新しい式を割り当てることからは得られませんでした


別の方向から問題に取り組むことができます。オブジェクトの数は変わらないので、オブジェクトを破棄して新しいオブジェクトを作成するよりも、オブジェクトの状態が変化していると考える方がはるかに簡単です。必要に応じて、オブジェクトの状態をリセットするメンバー関数を作成するだけで済みます。

if(b.collision) {
     b.reset_state();
}

とは言うものの、その場所に新しい変数を作成する限り、自動(または静的)変数を破棄することは技術的に可能です(あなたの意図どおり)。

破壊はデストラクタを呼び出すことによって行われますが、構築は配置を使用して行われます-新しい式:

b.~line();
new(&b) line;

ただし、このアプローチには、単一のオブジェクトを全体に保持するよりも多くの注意点があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C#でオブジェクトを破棄する

分類Dev

C#でサードパーティオブジェクト(TelegramBotClient)を適切に破棄する方法

分類Dev

C ++オブジェクトがいつ破棄されたかを知る方法

分類Dev

C ++-オブジェクトが破棄されるのはいつですか

分類Dev

C ++で動的に割り当てられたメモリ(配列オブジェクト)を破棄する

分類Dev

C#で破棄されたオブジェクトとは何ですか?

分類Dev

Objective-C ++でC ++オブジェクトが破棄されるのはいつですか?

分類Dev

C#を介してオブジェクトを破棄します

分類Dev

C ++オブジェクトを返すときのコピーと破棄

分類Dev

すべてのC ++ / CLIオブジェクトを破棄する必要がありますか?

分類Dev

C#CA2000スコープを失う前にオブジェクトを破棄する

分類Dev

c ++:一時オブジェクトが破棄されるのはいつですか

分類Dev

C#の静的クラスからアンマネージドオブジェクトを破棄するにはどうすればよいですか?

分類Dev

C#:IQueryableでDbContextを挿入すると、ASP.NETCoreで破棄されたオブジェクトにアクセスできません

分類Dev

C ++のコンストラクターで例外がスローされたときに、オブジェクトのメンバー変数を破棄する

分類Dev

C#.NETは、オブジェクトがすべきでないものを破棄するのを防ぎます

分類Dev

オブジェクトが実際にC ++で破棄されるのはいつですか?delete(ptr)は何をしますか?

分類Dev

C ++オブジェクトが指定された値で破棄されないのはなぜですか?

分類Dev

C ++オブジェクトの作成と破棄

分類Dev

C ++:引数で構築されたオブジェクトが破棄されると?

分類Dev

C#:オブジェクトを破棄する前にソケットを閉じる必要がありますか?

分類Dev

C ++クラスのメンバーオブジェクト:どこで破棄する必要がありますか?

分類Dev

関数呼び出しは、明示的に構築されていない場合でも、戻りオブジェクトを破棄しますか?C ++

分類Dev

C ++でオブジェクト参照を初期化する方法は?

分類Dev

C#でjsonオブジェクトを操作する方法

分類Dev

C ++複数の方法でオブジェクトを印刷する

分類Dev

C ++で静的オブジェクトを削除する方法

分類Dev

C ++で静的オブジェクトを削除する方法

分類Dev

C#でオブジェクトを作成する方法

Related 関連記事

  1. 1

    C#でオブジェクトを破棄する

  2. 2

    C#でサードパーティオブジェクト(TelegramBotClient)を適切に破棄する方法

  3. 3

    C ++オブジェクトがいつ破棄されたかを知る方法

  4. 4

    C ++-オブジェクトが破棄されるのはいつですか

  5. 5

    C ++で動的に割り当てられたメモリ(配列オブジェクト)を破棄する

  6. 6

    C#で破棄されたオブジェクトとは何ですか?

  7. 7

    Objective-C ++でC ++オブジェクトが破棄されるのはいつですか?

  8. 8

    C#を介してオブジェクトを破棄します

  9. 9

    C ++オブジェクトを返すときのコピーと破棄

  10. 10

    すべてのC ++ / CLIオブジェクトを破棄する必要がありますか?

  11. 11

    C#CA2000スコープを失う前にオブジェクトを破棄する

  12. 12

    c ++:一時オブジェクトが破棄されるのはいつですか

  13. 13

    C#の静的クラスからアンマネージドオブジェクトを破棄するにはどうすればよいですか?

  14. 14

    C#:IQueryableでDbContextを挿入すると、ASP.NETCoreで破棄されたオブジェクトにアクセスできません

  15. 15

    C ++のコンストラクターで例外がスローされたときに、オブジェクトのメンバー変数を破棄する

  16. 16

    C#.NETは、オブジェクトがすべきでないものを破棄するのを防ぎます

  17. 17

    オブジェクトが実際にC ++で破棄されるのはいつですか?delete(ptr)は何をしますか?

  18. 18

    C ++オブジェクトが指定された値で破棄されないのはなぜですか?

  19. 19

    C ++オブジェクトの作成と破棄

  20. 20

    C ++:引数で構築されたオブジェクトが破棄されると?

  21. 21

    C#:オブジェクトを破棄する前にソケットを閉じる必要がありますか?

  22. 22

    C ++クラスのメンバーオブジェクト:どこで破棄する必要がありますか?

  23. 23

    関数呼び出しは、明示的に構築されていない場合でも、戻りオブジェクトを破棄しますか?C ++

  24. 24

    C ++でオブジェクト参照を初期化する方法は?

  25. 25

    C#でjsonオブジェクトを操作する方法

  26. 26

    C ++複数の方法でオブジェクトを印刷する

  27. 27

    C ++で静的オブジェクトを削除する方法

  28. 28

    C ++で静的オブジェクトを削除する方法

  29. 29

    C#でオブジェクトを作成する方法

ホットタグ

アーカイブ