求求各位大牛,帮忙看下代码问题出哪了吧,调一天了也没调出来,都快哭了!!!!!!
麻烦各位大牛给看看吧,注释部分放开后,为何程序在析构的时候会报错呢,百思不得其解啊,都快哭了俺!!!!!!!!!!!!!!!!!!!!!!!
http://blog.csdn.net/simple_on_foot/article/details/14056039 C++析构报错
[解决办法]
string *s ???
用string或char*如何?
--pString->count 是要把count减一吗? pString->count -= 1 ;
[解决办法]
因为你在copyInstruct.cpp中调用:
no_name.set(&s1); // 错误:将栈空间对象指针赋给要用delete释放的空间
delete只能释放对上的空间,即有new分配的空间。
[解决办法]
看了lz的代码,感觉少年对sharePtr的理解还是不大对的:
(1)
friend class NoName;
NoName::~NoName(void)
{
if (--pString->count == 0) {
delete pString;
}
}