私の目的は、クラススコープ内のメモリ割り当てを制御しながら、インクルードを最小限に抑えてコンパイル時間を短縮することです。避けるために定数ポインタを使用する
インスタンス化アプローチ
foo.hという
#include "Bar.h" //unneccessary if only number is used in a given source file
struct Foo
{
Bar bar;
int number;
};
定数ポインタアプローチ
foo.hという
struct Bar; //no include, to use Bar Bar.h must also be included
struct Foo
{
Bar *const bar;
int number;
Foo();
Foo(const Foo&) = delete;
~Foo();
};
Foo.cpp
#include "Bar.h"
Foo::Foo()
: bar(new Bar())
{
}
Foo::~Foo()
{
delete bar;
}
代わりに、インスタンス変数のこのように一定のポインタを使用しての他の注意点はありますか?それとも別のアプローチですか?
このような過度の賢さは、モジュールが回ってくると困ってしまいます。必要なものだけを含める。 –
他の警告では、完全に壊れているコピーコンストラクタと 'new'を手動で使用すること以外のことを意味しますか? –
正確には:)私は持っているので、私はそれらを削除して幸せですコピーの建設は必要ありません。質問を更新しました。あなたは「新しいものの手作業による使用」を拡大することができますか?それは新しいものの他の用途と比較してどのように問題になっていますか?ありがとう! –