df_dict = {f'group_{i}': pd.concat([pd.read_fsf(file, skiprows=4, header=None, engine='python') for file in chunk]) for i, chunk in enumerate(chunks)}
无法使用class test
{
public:
static int i;
int func() {
return i;
}
};
int main()
{
test::i = 20;
}
进行编译。
如果我创建静态变量clang: error: linker command failed with exit code 1 (use -v to see invocation)
,则可以在inline
内定义它。或者,如果我不将其内联,则可以在类声明和main
之间定义它,如下所示:
main()
为什么这样做有效,而前者却无效?
另外,为什么在class test
{
public:
static int i;
int func() {
return i;
}
};
int test::i = 20;
int main()
{
}
中已经声明为int
的地方需要int
?
答案 0 :(得分:2)
在函数内部,语句
test::i = 20;
是一个表达式(不是定义)。它将值20存储到test::i
中。但是,如果从未定义test::i
,则无法在其中存储值。
另一方面,在命名空间范围内,当您编写
int test::i = 20;
这是test::i
的定义。