网站开发是什么费用seo经典案例分析
一.成员变量和成员函数分开存储:
在C++中,类的成员变量和成员函数分开存储,只有非静态成员变量在属于类的对象上。
1.空对象的所占内存大小:
//成员变量和成员函数分开存储
class Person
{};void test()
{Person p;cout << "size of p = " << sizeof(p) << endl;
}
输出结果:
size of p = 1
原因:
C++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置,每个空对象也应该右一个独一无二的内存地址。
2.非静态成员变量在属于类的对象上:
例1:
//成员变量和成员函数分开存储
class Person1
{int a = 10;//非静态成员变量,属于类对象
};class Person2
{static int b;//静态成员变量,不属于类对象
};
int Person2 :: b = 10;void test()
{Person1 p1;cout << "size of p1 = " << sizeof(p1) << endl;Person2 p2;cout << "size of p2 = " << sizeof(p2) << endl;
}
输出结果:
size of p1 = 4
size of p2 = 1
例2:
//成员变量和成员函数分开存储
class Person1
{static void func1()//静态成员函数,不属于类对象{cout << "静态成员函数" <<endl;}
};class Person2
{static void func2()//非静态成员函数,不属于类对象{cout << "非静态成员函数" <<endl;}
};
void test()
{Person1 p1;cout << "size of p1 = " << sizeof(p1) << endl;Person1 p2;cout << "size of p2 = " << sizeof(p2) << endl;
}
输出结果:
size of p1 = 1
size of p2 = 1