typedef struct _message
{
int head;
int foot;
}Message;
class Sendmessage
{
public:
Sendmessage()
{
memset(&m_message, 0, sizeof(m_message));
}
Message* GetMessage()
{
return &m_message;
}
private:
Message m_message;
}
static Sendmessage g_sendmessage;
Message* Setmessage()
{
return g_sendmessage.GetMessage();
}
上面代码用于将一个cpp文件中的某些参数放入一个结构体中,让这些参数可以在其他cpp文件中赋值并使用。
其他文件中使用方法如下:
Message* param = Setmessage();
param->head = 100;
也可以使用更简单的方法:
static Message msg;
memset(&msg, 0, sizeof(msg));
Message* Sendmessage(){
return &msg;
}
那两种方法的区别在哪里呢?
用类封装后是更安全的,因为在第一种方法中,参数是在private中,因此在类外,控制参数只能使用类中的getmessage这个函数来改变或者获取值。而在第二种方法却可以随意修改。