通过模板生成set get 方法减少代码量。
#include "stdafx.h"
#include <iostream>
#include <string>
#define SETGET_DATA( I )\
void Set_##I( const std::string& in_##I )\
{\
if (in_##I.length() > sizeof( m_##I ) )\
{\
return;\
}\
strcpy( m_##I , in_##I.c_str() );\
}\
const char* const Get_##I() const\
{\
return m_##I;\
}
class Person
{
private:
char m_name[8];
char m_address[8];
public:
Person(){}
~Person(){}
SETGET_DATA(name);//Get_name() and Set_name(string in_name)
SETGET_DATA(address); //Get_address() and Set_address(string in_address)
};
int _tmain(int argc, _TCHAR* argv[])
{
Person person;
person.Set_name("Kevin Chen");
std::cout<<person.Get_name()<<std::endl; //Kevin Chen
return 0;
}