如果我写这样的话:

class myclass
{
#define ADD(x,y) {return x+y}

public:

}

定义是我类私有(private)的吗?

请注意,我正在* .hpp中定义它,并且我想确保如果我将此hpp包含在另一个源代码中,则其他源代码无权访问此定义。

有没有比在C++中使用#define更好的解决方案呢?

那使用呢?对我的类(class)来说是私有(private)的吗?
class myclass
{
using std;

public:

}

最佳答案

它不是,永远不可能。

在读取和分析源代码之前,所有预处理器命令(#...)都已处理,因此,将它们放置在什么位置都没有关系。仅顺序(如果它们彼此构建)和使用的相对位置(之前/之后)很重要。

您可以想象预处理器命令类似于“从这里查找/替换”。

09-09 23:21
查看更多