現在、マクロを使用して 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;
}