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

相关推荐
今天要早睡_2 小时前
C++01_入门基础复习
开发语言·c++
Fuyo_11195 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试
Chen_harmony6 小时前
七、STL与string类
开发语言·c++
xxxiugou1237 小时前
C++命名空间与引用全解析
开发语言·c++
用户7624117567058 小时前
第十五章 人工智能基础
c++
爱写Bug的浮游10 小时前
unique_ptr 零开销的真相与边界
c++·facebook
xiaoye-duck11 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(下):流式响应实现和测试
网络·c++·语言模型·chatgpt
落樱弥城12 小时前
Perf 逐步探查性能缺口并优化
c++·性能优化
坤坤子吖12 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习
Rabitebla13 小时前
【Linux学习笔记】进程篇(九):进程的创建与退出——fork、写时拷贝与退出码
linux·c++·笔记·学习