Mir*_*cek 3 c++ static declaration
我在C++中编写代码时在我的类中声明一些静态变量,然后查看有关未解析的静态变量的编译错误(在以前的时间里,我总是被吓到了,这是什么意思),这是我最喜欢的烦恼之一.
我的意思是经典的例子:
Test.h
class Test
{
private:
static int m_staticVar;
int m_var;
}
Run Code Online (Sandbox Code Playgroud)
TEST.CPP
int Test::m_staticVar;
Run Code Online (Sandbox Code Playgroud)
这个定义的语法让我觉得更令人困惑的是,你不能在这里使用'static'这个词(因为静态在cpp中使用时有不同的含义,叹息)所以你不知道(除了知识静态成员) vars就是这样工作)为什么在地球上有一些来自Test类的int以这种方式定义,为什么m_var不是.
根据您的知识/意见,为什么?我只能想到一个原因,那就是让链接器的生命更容易 - 也就是说,为什么你不能使用非整数常量(SomeClass m_var = something).但是我不喜欢弯曲语言功能的想法只是因为编译链的某些部分会很难吃它...
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |