婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2008-3-23
|
class Base
{
public:
static auto size()
{
return _size.load();
}
private:
static std::atomic<int> _size;
class helper
{
public:
helper()
{
_size++;
}
helper(const helper&)
{
_size++;
}
helper(helper&&)
{
}
helper& operator=(const helper& other)
{
helper::helper(other);
return *this;
}
helper& operator=(const helper&&)
{
return *this;
}
} hp;
};
std::atomic<int> Base::_size = {0};
class Derived : public Base
{
};
int main()
{
std::cout<<Base::size()<<'\n';
Base a;
Base b;
std::cout << Base::size() << '\n';
Derived c;
std::cout << Base::size() << '\n';
Derived d(c);
std::cout << Base::size() << '\n';
auto e = d;
std::cout << Base::size() << '\n';
auto f = std::move(e);
std::cout << Base::size() << '\n';
}
这么玩?不过子类如果实现了自己的拷贝构造可能计数还是有问题 |
|