1 类里成员变量里声明:protected: public: private:
map<server*,list<client*>> m_serverclients;
vector<thread *> m_clientThread;
2 可以通过构造函数实例化的时候传递另一个类的指针
manager * m_manager=new manager(this);
3 一般在析构函数的时候释放new的变量,可以考虑在构造函数里new
for (i=1;i<=10;i++)
{
m_server=new server();
server->run();
for(j=1;j<=4;j++)
{
client * m_client=new client();
thread *m_thread=new thread();
m_clientThread.push_back(m_thread);
m_serverclients[m_server].push_back(m_client);
}
}
4析构函数释放资源 ,先申请的后释放
manager::~manager()
{
for(int i=0;i<m_clientThread.size();i++)
{
Thread * threadsend=m_clientThread[i];
if(threadsend)
{
threadsend->stop();
sleep(10);
delete threadsend;
threadsend=NULL;
}
for(map<server*,list<client*>>::iterrator its=m_serverclients.begin();its!=m_serverclients.end();its++)
{
if(server)
{
list<client*>& clients=its->second;
for(list<client*>::iterator itc=clients.begin();itc!=clients.begin();itc++)
{
client* m_client=(*itc);
if(m_client)
{
delete client,client=NULL;
}
delete server,server=NULL;
}
}
}
}
5再new之前一定要对指针置为NULL;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。