#include
#include
#include
using namespace std;
class CMyClass
{
public:
CMyClass() {}
CMyClass(int a)
{
this->m_nValue = a;
vec.push_back(*this);
}
CMyClass(const CMyClass&c) {
m_nValue = c.m_nValue;
}
~CMyClass()
{
/*不知道怎么指向当前类*/
vector::iterator it;
for (it = vec.begin(); it != vec.end(); it++)
{
if (it->vec == *this)
vec.erase(it);
}
}
friend bool operator==(vector<CMyClass>v, CMyClass& c2)
{
int length = v.size();
for (int i = 0; i < length; i++)
{
if (&v[i] == &c2)
return true;
}
return false;
}
friend ostream& operator<<(ostream& out, CMyClass& c)
{
out << c.m_nValue << endl;
return out;
}
static void ShowList()
{
vector<CMyClass>::iterator it;
for (it = vec.begin(); it != vec.end(); it++)
{
cout << *it;
}
}
private:
int m_nValue;
static vectorvec;
};
vectorCMyClass::vec;
int main()
{
CMyClass a(100);
CMyClass b(1);
CMyClass c;
CMyClass* d = new CMyClass;
*d = 10;
cout << "The first end:" << endl;
CMyClass::ShowList();
if (1)
{
CMyClass e(1000);
cout << "The second end:" << endl;
CMyClass::ShowList();
}
delete d;
cout << "The third end:" << endl;
CMyClass::ShowList();
return 0;
}
类CMyClass中的vector类型的静态成员变量,目的是在创建对象时把他加入到容器中,在析构对象时把它从该容器中删除。现在debug,出现了overflow的错误,求教!