是否可以使用以下空格编写define:
#define replace to replacement here
我想将“替换为”替换为“替换”。
编辑:
我想测试私人会员:
我写了
#define private public
但它不适用于Qt
中的私人广告位所以我打算使用像
这样的东西#define private slots: public slots:
无论如何,我已经找到了另一种测试插槽的方法,而且我知道这是一个丑陋的黑客。
答案 0 :(得分:10)
不,你不能
#define identifier something
您定义的内容必须是 标识符 ,且不能包含空格。也不能包含连字符,以数字开头等,您只能定义标识符
你写的东西会起作用
#define replace to replacement here
但不像你期望的那样。此行定义replace
替换为to replacement here
第h
答案 1 :(得分:3)
如果您正在进行单元测试,可以使用以下标志编译文件
-Dprivate=public
然后在您的单元测试中,您将能够调用您班级的每个私人方法。
修改强>
我最近评论说在gcc编译器上使用-fno-access-control标志允许您访问私有方法或成员。有关该主题的更多信息,请访问:Unit testing with -fno-access-control
答案 2 :(得分:2)
不,那是不可能的。为什么不这样做呢:
#define replace_to replacement here
答案 3 :(得分:1)
你可以......
#define replace replacement
#define to here
注意定义的意外副作用。你可能希望在他们完成工作后#undef
。
答案 4 :(得分:0)
答案 5 :(得分:0)