我想知道的是,如果我创建一个 myfoo 数组,每个 foobar 实例会引用同一个变量,还是每个实例都是独立于其他 myfoo foobar 的 myfoo 的唯一实例?
如果你这样做:
#include foo.h
class myfoo
{
private:
mystruct foobar;
};
void func()
{
myfoo f[3];
// ...
}
您创建了 3 个不同的myfoo对象,每个对象都有自己的foobar实例。
如果你改变 myfoo 声明如下:
#include foo.h
class myfoo
{
private:
static mystruct foobar;
};
// this extra declaration is required for
// static member variables
mystruct myfoo::foobar;
void func()
{
myfoo f[3];
// ...
}
那么myfoo 的三个实例将共享它们的单个 foobar 实例。
注意:
class myfoo
声明可以在“.h”或“.cpp”文件中。
声明可能只出现mystruct myfoo::foobar;
一次,因此它通常必须在“.cpp”文件(或“.cc”或您使用的任何文件)中。