【发布时间】:2009-07-15 09:48:28
【问题描述】:
我有一个 CCounter 类,它包含受互斥锁保护的整数值。我已经定义了几个运算符,例如 post/pre inc/dec 返回一个整数,所以我可以这样做:
CCounter c(10);
int i = c++;
但是对于像 i = c 这样的简单分配我该怎么办?我试图定义朋友 operator= 但它给了我
operator=(int&, const CCounter&)’ must be a nonstatic member function
错误。请指教。谢谢。
【问题讨论】:
-
除了其他人写的解决方案之外:您应该将 ++/-- 运算符的返回值设为 CCounter &/CCounter 而不是 int!