我想在调试时暴露私人成员,如下所示:
class A {
public:
void f1();
#ifndef NDEBUG
public:
#else
private:
#endif
void f2();
};
我想使用像:
这样的宏#define PUBLIC public:
#define PRIVATE \
\#ifndef NDEBUG \
public: \
\#else \
private: \
\#endif
但是,我知道这不起作用......
你们推荐什么? Thx提前。
编辑01:
我的目的不是debug
我的代码,而是测试私有成员函数。
答案 0 :(得分:6)
根据PRIVATE
NDEBUG
#ifndef NDEBUG
#define PRIVATE public
#else
#define PRIVATE private
#endif
答案 1 :(得分:4)
你不能,预处理器没有反射。但你可以正常(呃,可以说是......)这样做:
#ifndef NDEBUG
#define PRIVATE public:
#else
#define PRIVATE private:
#end