C/C++のポインタで省メモリ/高速化をするにあたって


初歩的な質問です。  
C/C++では、単純な型(intやdoubleなど)以外の型はポインタで確保、受け渡ししたほうが省メモリかつ高速にできることを知りました。  
自作クラスや構造体などは基本すべてポインタ(スマートポインタ)で宣言するべきなのでしょうか？ご回答よろしくお願いします。




> C/C++では、単純な型(intやdoubleなど)以外の型はポインタで確保、受け渡ししたほうが省メモリかつ高速にできることを知りました。

どこで得た情報でしょうか？ 正確にはケースバイケースです。

> 自作クラスや構造体などは基本すべてポインタ(スマートポインタ)で宣言するべきなのでしょうか？

もちろんケースバイケースで一般論はありません。強いて言えば必要な場面でのみポインタを選択されるべきです。例えば呼び出し元と呼び出し先とで値を共有したくない場面ではポインタを使うべきではありません。またC++言語であれば、ポインタに代わる参照も提供されておりそちらの方が適切な場面も多いです。

