相关疑难解决方法(0)

我什么时候应该在非成员函数之前写关键字'static'?

我最近static在函数之前看到了关于关键字的SO ,我想知道如何正确使用它.

1)我应该何时static在非成员函数之前编写关键字?

2)在标题中定义静态非成员函数是否危险?为什么不)?


(附带问题)

3)是否可以以某种方式在头文件中定义一个类,以便它只能在您首先使用它的翻译单元中使用?

(我问这个的原因是因为我正在学习STL,它可能是我的谓词等(可能是函子)的一个很好的解决方案,因为我不喜欢在cpp文件中定义除成员函数之外的函数)

(另外,我认为它与原始问题有关,因为根据我目前的推理,它会像static函数之前那样做)

编辑

在看到一些答案时出现的另一个问题:

4)很多人告诉我,我必须在头文件中声明静态函数,并在源文件中定义它.但静态函数对于翻译单元是唯一的.链接器怎样才能知道哪些翻译单元是独一无二的,因为头文件不直接涉及到一个源文件(仅当您包括他们)?

c++ linker static

23
推荐指数
2
解决办法
8279
查看次数

标签 统计

c++ ×1

linker ×1

static ×1