c – struct static member意思/定义
作者:互联网
struct a{static int z;}l;
(a is declared at file scope)
我无法使用初始化列表初始化z.静态结构成员是什么意思?
z(名称)也有外部链接和公共访问吗?
(我认为这意味着你给它文件范围并将其分组(并通过对象进行公共访问)?..为什么我不能初始化?)
另外….如果我在一个类中有一个静态结构成员?
解决方法:
类/结构的静态成员是不特定于该类/结构的具体实例的成员.除了一些特殊情况,它必须几乎总是在其中一个编译单元中显式初始化.然后可以使用命名空间访问它,在其中定义它:
#include <iostream>
struct a {
static int z;
int i;
} l;
int a::z = 0; // initialization
int main() {
a::z = 3;
l.i = 4;
std::cout << a::z << ' ' << l.i;
return 0;
}
输出3 4.
“我无法使用初始化列表初始化z.”
这是因为初始化列表用于在构造结构时初始化该结构的特定实例的成员.静态成员以不同的方式构造和初始化.
“如果我在一个类中有一个静态结构成员呢?”
唯一的区别是类中定义的成员默认是私有的,不像struct,它是public.
标签:c,struct,visual-c,static,static-members 来源: https://codeday.me/bug/20191007/1864443.html