我最近static在函数之前看到了关于关键字的SO ,我想知道如何正确使用它.
1)我应该何时static在非成员函数之前编写关键字?
2)在标题中定义静态非成员函数是否危险?为什么不)?
(附带问题)
3)是否可以以某种方式在头文件中定义一个类,以便它只能在您首先使用它的翻译单元中使用?
(我问这个的原因是因为我正在学习STL,它可能是我的谓词等(可能是函子)的一个很好的解决方案,因为我不喜欢在cpp文件中定义除成员函数之外的函数)
(另外,我认为它与原始问题有关,因为根据我目前的推理,它会像static函数之前那样做)
在看到一些答案时出现的另一个问题:
4)很多人告诉我,我必须在头文件中声明静态函数,并在源文件中定义它.但静态函数对于翻译单元是唯一的.链接器怎样才能知道哪些翻译单元是独一无二的,因为头文件不直接涉及到一个源文件(仅当您包括他们)?