C++知识点—03 <C++宏代码生成/宏反射写法>

------工作所遇随手记,防便自己查看


此方法属于编译期代码生成,利用预处理宏批量生成重复成员函数。

1. 举例

cpp 复制代码
// 宏定义(自动生成器)
#define _MEMBER(type, name) \
public: \
type m_##name; \
type Get##name() { return m_##name; } \
void Set##name(type v) { m_##name = v; }

// 使用
struct Student {
    _MEMBER(string, Name);
    _MEMBER(int, Age);
};


//宏自动生成
string m_Name;
string GetName() { return m_Name; }
void SetName(string v) { m_Name = v; }

int m_Age;
int GetAge() { return m_Age; }
void SetAge(int v) { m_Age = v; }

2. 优点

  • 所有参数格式统一,不会写错
  • 自动支持配置保存/读取(存文件,发网络)
  • 便于日后维护

3.适合场景

  • 配置参数
  • 设备参数
  • 大量属性的类
  • 大量需要Get/Set的变量

Ps:只要有三个以上的参数,使用就很方便

相关推荐
WL学习笔记15 小时前
C & C++ 内存管理
c++·c++内存管理
宛 禾18 小时前
Qt 控件入门:QLabel 从拖拽到对象树,一篇讲透
c++·qt·学习
hetao173383718 小时前
联盟场-提高组-R7 & ZYZSC-S-Round 11
c++·算法
程序喵大人18 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
局部有解18 小时前
Hot100 - 三数之和
数据结构·c++·算法
longlongzihan19 小时前
C++ 常用数据结构速查:vector、stack、queue、list、树、图、哈希表等声明与核心操作
数据结构·c++·list
别动我齐刘海19 小时前
实时控制学习2
linux·c++·人工智能·学习·算法
hetao173383720 小时前
校内场-提高组 ZYZSC-S-Round 2
c++·算法
hetao173383720 小时前
2026-10-14 hetao1733837 的刷题记录
c++·算法
浅念-21 小时前
动态规划:线性DP——多状态DP与子数组专题笔记
c++·笔记·算法·leetcode·职场和发展·动态规划·力扣