由于一些静态数据,我有一个功能
void foo(MyNamespace::bar)
在某个编译单元中定义.但它的使用点在于另一个编译单元.所以我用
namespace MyNamespace
{
extern void foo(bar);
}
Run Code Online (Sandbox Code Playgroud)
但是链接器找不到函数定义.我在滥用extern吗?
extern 可以用于这种事情.
您的问题是链接器MyNamespace::foo(bar);由于您的extern语句在其中而期望函数MyNamespace.
你有两个选择:
用extern void foo(MyNamespace::bar);你的"使用点".不要将该行括起来MyNamespace.
或者,将函数定义包含在其中MyNamespace.
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |