我有两个带常量的类.
例如,有一个名为class_a.m的类包含一个常量kWidth = 150,
我也有一个名为class_b.m的类caontain一个常量kWidth = 200
运行我的项目后,我得到一个带有重复符号的错误,但这些文件没有嵌套(我的意思是class_a到class_b或class_b到class_a).我也只使用这个constantin实现.
资源:
const int kWidht = 150;
Run Code Online (Sandbox Code Playgroud)
错误说明:
ld: duplicate symbol _kWidht...
Run Code Online (Sandbox Code Playgroud)
感谢帮助!
BJ *_*mer 14
如果常量仅在单个实现文件中使用,那么您应该在其声明前加上static.就是这样:
const int kWidth = 150;
Run Code Online (Sandbox Code Playgroud)
进入这个:
static const int kWidth = 150;
Run Code Online (Sandbox Code Playgroud)
该static关键字告诉编译器该符号仅在当前文件中使用.1没有它,编译器会假定您声明了一个全局变量,可以从最终应用程序中的任何位置访问该变量.声明两个具有相同名称的全局变量并不是一个好主意,因为你无法区分它们,所以编译器正确地抱怨.幸运的是,只需通过static关键字更明确地表达您的意图,就可以轻松解决这个问题.
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |