man*_*ans 1 c++ c-preprocessor
如果我写这样的东西:
class myclass
{
#define ADD(x,y) {return x+y}
public:
}
Run Code Online (Sandbox Code Playgroud)
我的班级的私人定义是什么?
请注意我在*.hpp中定义它并且我想确保如果我将此hpp包含到另一个源代码中,则其他源代码无法访问此定义.
有没有比#define在C++中使用更好的解决方案可以做同样的事情?
怎么用?我的班级是否私密?
class myclass
{
using std;
public:
}
Run Code Online (Sandbox Code Playgroud)
它不是,也永远不会.
#...在读取和分析源代码之前,所有预处理器命令()都会被处理,所以在它们放置它们的任何地方都无关紧要; 只有序列(如果它们相互构建)和它们的使用相对位置(之前/之后)很重要.
您可以将预处理器命令想象为"从此处查找/替换".