宏"parameter"名称网格。能行吗?我做错了什么?
Macro "parameter" name mesh. Can it work? What am I doing wrong?
// MACROS
#define A_PROPERTY(TYPE, NAME)
private:
TYPE NAME;
public:
void SetNAME(TYPE theNAME) {NAME=theNAME;}
TYPE GetNAME() {return NAME;}
我正在尝试创建一个简单的宏,它将采用类型和名称并创建:
- 名为 NAME 的类型私有成员
- 称为 GetNAME 的公共"getter"方法(其中 NAME 是变量...(
- 称为 GetNAME 的公共"setter"方法(其中 NAME 是可变的...(
这就是我从类定义中使用它的方式:
A_PROPERTY(int, Age)
宏工作,但创建一个"getNAME"方法而不是"get(无论我放入NAME("。似乎宏不能很好地将字符串和"参数"解析在一起。有没有办法实现我想要的?或者我应该只将方法作为"NAME",并带有不同的签名来区分 get 和集合?
使用##
来拼接标记。
#define A_PROPERTY(TYPE, NAME)
private:
TYPE NAME;
public:
void Set##NAME(TYPE the##NAME) {NAME=the##NAME;}
TYPE Get##NAME() {return NAME;}
void SetNAME(TYPE theNAME) {NAME=theNAME;}
TYPE GetNAME() {return NAME;}
这将为所有 NAME 和 TYPE 参数创建相同的函数名称。
我想你想要这个:
void Set##NAME(TYPE the##NAME) {NAME=the##NAME;}
TYPE Get##NAME() {return NAME;}
NAME
并不是真正的私有,因为您可以通过成员函数读取和写入它。 您不妨使用struct
,或公开NAME
。
相关文章:
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 我的C++线程做错了什么?
- 谁能告诉我我用 getline 做错了什么 (cpp) 格式
- 没有输出的合并排序我做错了什么?
- 我正在尝试使用 while 循环从字符串中删除字母,直到没有字母。我在这里做错了什么?
- 在C++中使用 AKS 素数测试计算双胞胎素数 我做错了什么?
- 我一直试图弄清楚我在这个链表程序中做错了什么
- 我正在尝试学习如何在 c++ 中传递指针,但出现错误:没有用于调用"test"的匹配函数。我做错了什么?
- FFMPEG,C++,内存泄漏,我做错了什么?
- 我做错了什么?反向字符串 C++
- 我在这个课上做错了什么?
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 在不使用内置库函数的情况下添加字符串,我做错了什么?
- 我做错了什么?GetDiskFreeSpaceExA的功能根本不起作用
- 我在查找和字符串上做错了什么?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 我在尝试将多个值push_back向量时出错。我做错了什么?
- 插入排序:我做错了什么?