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:只要有三个以上的参数,使用就很方便

相关推荐
知无不研1 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
C++ 老炮儿的技术栈3 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qz_Serene5 小时前
C++:类和对象(上)
开发语言·c++
郝学胜-神的一滴6 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
hetao17338376 小时前
2026-08-09~08-14 hetao1733837 的刷题记录
c++·算法
间歇性努力持续性发呆的野生快乐选手9 小时前
栈的性质(进栈,出栈,访问)
数据结构·c++
旖旎夜光9 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
hansang_IR10 小时前
【题解】P14468 [COCI 2025/2026 #1] 和谐 / Harmonija(线段树 DDP 版本)
c++·算法·动态dp
乐观勇敢坚强的老彭11 小时前
C++ 竞赛常用算法模板速查表
开发语言·c++·算法
我变成萤火虫11 小时前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法