int main() { /// < 创建邮件 Mail mal(*(new AdvTemplate("幸运大奖", "犬友头像征集活动开始了,欢迎到家踊跃报名!"))); char buf[128]; srand(time(0)); for (int i = 0; i < 5; i++) { memset(buf, 0, 128); myitoa(random(123456), buf, 10); /// < 自己封装了一个String函数,这样省去了以上的字符串操作!不过需要將string函数替换!不过我再修改 /// < 下库,提供一个获取字符串的函数! String b = "@qq.com"; String d = buf; String c = d + b; char * abc = c.getStr(); Mail * pMail = mal.getClone(); /// < 得到clone版本,这样再执行多线程操作才不会影响结果!省去了我们自己控制线程pthread_create! cout << "address1 ---------- "<< pMail << endl; /// < 每次地址都不同,因此成功拷贝! pMail->setRec(abc); delete abc; pMail->setAppe("xiaodou"); pMail->setTail("lego公司"); SendMail::sendMail(*pMail); delete pMail; /// < 执行了delete之后,可能每次分配的地址都相同!所以每次你看到address结果都可能相同! } return 0; }