【C++】インスタンスの生成でクラスを使用する場合とスマートポインタでクラスを使用する際の違いについて | UE4&5 Forum | Tech Stadium Forum

【C++】インスタンスの生成でクラスを...
 
通知
すべてクリア

【C++】インスタンスの生成でクラスを使用する場合とスマートポインタでクラスを使用する際の違いについて  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
05/01/2023 2:21 pm  

インスタンスの生成でクラスを使用する場合と
スマートポインタでクラスを使用する際の違いについての質問です。

BigOrSmall.h内で
std::unique_ptr<scene::Base> scene_;

とBaseクラスを使用する記述がありますが、
こちらはインスタンスを生成する形で記述することはできないのでしょうか。

→スマートポインターを使わず単純に
scene::Base scene_;
で宣言して使う形


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
05/01/2023 2:23 pm  

単純に「インスタンスを生成する形」宣言して使っても基本的には大丈夫です。
C++はメモリー領域を直接触って参照したり、メモリーを解放するなどができるので、下手すればメモリー関連で致命的な不具合やエラーが発生するリスクがあります。

そのリスクを回避するためにC++に導入されたのが「スマートポインター」です。

・スマートポインター関連
https://qiita.com/hmito/items/9b35a2438a8b8ee4b5af

https://rinatz.github.io/cpp-book/ch06-05-smart-pointers/

 

最初からスマートポインターを使う習慣をつけた方がいいと思います。


返信引用
共有:
タイトルとURLをコピーしました