让我的类的所有构造函数(包括复制构造函数)增加静态计数器是否合适?如果是这样,是否可以通过覆盖其他运算符来确保我的类仍然符合标准容器的要求(即T(x)等于x)?
即,你是对的:只需在构造函数中递增并在析构函数中递减.
当然,正如George指出的那样,如果你想让多线程安全,你需要在访问你的计数器变量(例如一些互斥锁)时添加一些多线程安全代码.或者正如Steven指出的那样,您也可以使用原子递增/递减指令(但用法取决于平台).那些会快得多.但是,您必须要小心,因为在某些情况下,它不适用于多处理器环境.你可以使用Boost的atomic_count来保证安全.