私はクラスを持っています:
class Nothing
{
/// Constructor, Destructor, Copy and Assignment
public:
Nothing();
~Nothing();
Nothing(const Nothing& clone);
/// Operators
const Nothing& operator=(const Nothing& other);
/// Static Members
private:
static unsigned long long id_counter;
static unsigned long long instance_counter;
};
Nothing::Nothing()
{
m_name.clear();
id_counter ++;
m_id = id_counter;
instance_counter ++;
}
Nothing::~Nothing()
{
m_name.clear();
instance_counter --;
}
Nothing::Nothing(const Nothing& other)
{
}
unsigned long long Nothing::id_counter = 0;
unsigned long long Nothing::instance_counter = 0;
クラスのインスタンスをカウントするために unsigned long long を使用していることに注意してください。代わりに std::size_t を使用する必要がありますか?
余談ですが、クラスのインスタンスがあり、次のようなことをするとします。
Nothing instance;
instance(Nothing()); // Calling copy constructor
コピーコンストラクタが呼び出される前にデストラクタが呼び出されますか? 質問する理由は、コピーコンストラクターの中id_counter ++;
に必要ですか?instance_counter ++;