专业房产网站建设公司,360云盘做服务器建设网站,泉州学校网站开发,猪猪券网站建设#x1f308;个人主页#xff1a;羽晨同学
#x1f4ab;个人格言:“成为自己未来的主人~” 概念
声明为static的类成员称为类的静态成员#xff0c;用static修饰的成员变量#xff0c;称之为静态成员变量#xff0c;用static修饰的成员函数#xff0c;称之为静态成…
个人主页羽晨同学
个人格言:“成为自己未来的主人~” 概念
声明为static的类成员称为类的静态成员用static修饰的成员变量称之为静态成员变量用static修饰的成员函数称之为静态成员函数静态成员变量一定要在类外进行初始化。
我们来看下面的这一段代码思考一下程序中创建出了多少个类对象。
#includeiostream
using namespace std;
class A
{
public:A(){_scount;}A(const A t){_scount;}static int GetAcount(){//this-return _scount;}
private:
// int _a1 1;
// int _a2 2;
//public:static int _scount;
};
int A::_scount 0;
void TestA()
{cout A::GetAcount() endl;A a1, a2;A a3(a1);cout A::GetAcount() endl;
}
int main()
{TestA();return 0;
}在上面的这段代码当中我们可以获取到下面的几个知识点
静态成员变量必须在类外定义定义时不添加static关键字类中只是声明类静态成员即可用类名静态成员或者对象.静态成员来访问。静态成员函数没有隐藏的this指针 不能访问任何非静态成员静态成员也是类的成员受到public,protected,private等访问限定符的约束。
我们再来看下面的这段代码
#includeiostream
using namespace std;
class A
{
public:A(){_scount;}A(const A t){_scount;}static int GetAcount(){//this-return _scount;}
private:int _a1 1;int _a2 2;
//public:static int _scount;
};
int A::_scount 0;
void TestA()
{cout A::GetAcount() endl;A a1, a2;A a3(a1);cout A::GetAcount() endl;
}
int main()
{A aa1;cout sizeof(aa1) endl;return 0;
}我们可以看到类的大小是4个字节这个说明了什么呢
说明静态成员为所有类对象所共享不属于某个具体的对象存放在静态区。