簡體   English   中英

使用不同的 class 取決於 g++ 標志

[英]Use diferent class depend on g++ flag

我希望我的 C++ 程序以兩種模式之一工作:正常/調試。 現在我有一些class A ,我想在normal modeclass N替換它,或者在debug modeclass D替換它。 干凈的做法是什么? 我在想這樣的事情:

// classA.h
#ifdef DEBUG
#include "./classD.h"
#else
#include "./classN.h"
#endif

但是我怎樣才能輕松地使這個 class 與以前class A接口“兼容”?

我忍不住要提一下,你想做的事情有點可疑。 除非A專門用於調試,否則我不希望它在調試/發布版本中成為不同的 class。 如評論中所述,您通常希望調試稍后發布的代碼,而不是一些不同的代碼。 這聽起來像是一個混亂的秘訣。

話雖如此,您可以將A設為兩者之一的別名:

// classA.h
#ifdef DEBUG
#include "./classD.h"
using A = D;
#else
#include "./classN.h"
using A = N;
#endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM