目前我正在创建一个带有 set 和 get 函数的基类。但是我想添加更复杂的宏,但是宏对于调试来说真的很糟糕,所以我想用模板来做,但我不知道有人知道一本书或链接给我。
我真正的问题要复杂得多,我只是创建了一个集合并获取示例来演示该问题。
作为一个简单的示例,请参见:
#include <iostream>
#define SETGET_BEGIN(name) \
class name##Base { \
public: name##Base(){};
#define SETGET_VAR(type,name) \
protected: type name##_; \
public: void set##name(const type &_r) {name##_ = _r;} ; \
public: const type &get##name() const {return name##_; }; \
#define SETGET_END };
SETGET_BEGIN(MyClass)
SETGET_VAR(int,NrA)
SETGET_VAR(float,NrB)
SETGET_END
class MyClass : public MyClassBase {
public:
MyClass() : MyClassBase() {};
};
int main(int argc, char **argv) {
MyClass myclass;
myclass.setNrA(4);
return 0;
}