如果我写这样的话:
class myclass
{
#define ADD(x,y) {return x+y}
public:
}
定义是我类私有(private)的吗?
请注意,我正在* .hpp中定义它,并且我想确保如果我将此hpp包含在另一个源代码中,则其他源代码无权访问此定义。
有没有比在C++中使用
#define
更好的解决方案呢?那使用呢?对我的类(class)来说是私有(private)的吗?
class myclass
{
using std;
public:
}
最佳答案
它不是,永远不可能。
在读取和分析源代码之前,所有预处理器命令(#...
)都已处理,因此,将它们放置在什么位置都没有关系。仅顺序(如果它们彼此构建)和使用的相对位置(之前/之后)很重要。
您可以想象预处理器命令类似于“从这里查找/替换”。