c++ 类中静态成员变量vector 初始化 创建线程传递this 指针的使用类成员

最近用mfc做了一个小东西,学到的一些东西。

使用静态成员变量:类中所有成员共享数据 

mfc  线程函数传this 参数   AfxBeginThread(ExportXml, this);

door.h

struct doorInfo
{
	string name;		//用户名
	string userid;		//用户id
	string passwd;		//密码
	int	index;
};

class door
{
public:
	door();
	~door();
	void setvalue(int &i);
	void print();

	void* m_sdkstatus ;
	CWinThread		 *	m_pThread;
public:
	static vector<doorInfo>m_data;

	static UINT ExportXml(LPVOID pParam);
private:
	static doorInfo vecorInit();
};

door.cpp



door::door()
{
	vecorInit();
	m_sdkstatus = NULL;
}


door::~door()
{

}

void door::setvalue(int &i)
{
	char buf[12] = { 0 };
		sprintf(buf, "%d", i+1);
		doorInfo temp;
		temp.index = i+1;
		temp.name = buf;
		temp.passwd = buf;
		temp.userid = i;
		m_data.push_back(temp);

		m_pThread = AfxBeginThread(ExportXml, this);
}

void door::print()
{
	for (vector<doorInfo>::iterator it = m_data.begin(); it != m_data.end(); it++)
	{
		printf("%s \n", it->name.c_str());
		//printf("%s  %s  %s  %s  %d\n",it->name.c_str(),it->passwd.c_str(),it->userid.c_str(),it->index);
	}
}

UINT door::ExportXml(LPVOID pParam)
{
	door * temp = new door;
	temp = (door *)pParam;
	doorInfo aaa;
	aaa.name = "aa";
	aaa.passwd = "aa";
	aaa.index = 12;
	temp->m_data.push_back(aaa);
	return 0;
}

doorInfo door::vecorInit()
{
	doorInfo temp;
	temp.index = 0;
	temp.name = "";
	temp.passwd = "";
	temp.userid = "";

	m_data.push_back(temp);
	return temp;
}
vector<doorInfo>door::m_data;
main.cpp


int main()
{
	door d;
	for (int i = 0; i < 10; i++)
	{
		d.setvalue(i);

	}
	d.print();
	getchar();
	return 0;
}

猜你喜欢

转载自blog.csdn.net/so_do_it/article/details/84797546