如果(且仅当)您以需要的方式使用初始化成员 它要作为一个对象存储在内存中,该成员必须(唯一的) 在某处定义。
来自“The C ++ Programming Language”
我有一个班级
class Bingo{
std::string name;
public:
Bingo(){}
int i;
static const int i89=89;
};
我不需要像:
这样的定义const int Bingo::i89;
根据需要进行描述。所以我显然不明白。你能解释一下这个引语的含义吗?
答案 0 :(得分:2)
在类中定义成员时,它被称为类内初始化。
请注意,编译器可以将此类成员视为编译时常量,因为它知道该值不会随时更改,因此它可以应用自己的优化魔法并简单地内联此类成员,即它们不会存储在内存中了。由于它们没有存储在存储器中,因此无法获取这些成员的地址。反之亦然。
以上是Bjarne的基本原理,即每个C ++对象都需要唯一的定义,因此每个对象都需要存储在内存中,以便它们可以具有唯一的地址并被唯一标识。
因此引用,
如果(并且仅当)使用初始化成员的方式要求将其作为对象存储在内存中,则必须在某处(唯一)定义成员。
答案 1 :(得分:0)
据我所知,你需要::在定义它的类中时访问静态变量