什么线 int Test::i; 在下面的程序中。有人请解释
// Assume that integers take 4 bytes.
#include<iostream>
using namespace std;
class Test
{
static int i;
int j;
};
int Test::i;
int main()
{
cout << sizeof(Test);
return 0;
}
什么线 int Test::i; 在下面的程序中。有人请解释
// Assume that integers take 4 bytes.
#include<iostream>
using namespace std;
class Test
{
static int i;
int j;
};
int Test::i;
int main()
{
cout << sizeof(Test);
return 0;
}
static
这是定义类成员的语法。它初始化Test::i
为0
。
为了给它另一个价值,你可以做
int Tent::i = 42;
int Test::i;
默认情况下定义初始化它i
的类的静态成员。Test
0
static int i;
只是声明成员i
但没有定义它。您需要单独放置定义。
有问题的行定义(实例化)类 Test 中的静态变量 i 并将其初始化为默认值零。
程序写出类型为 Test 的对象的大小,即 int "j" 的大小(以字节为单位)。该数字取决于平台。一个32位的Windows程序会写4。变量“i”没有进入,因为它不是Test类对象的成员,而是一个“静态成员”,它就像一个全局变量,只是它是只能通过类 Test 的命名空间访问。