【建站服务】专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-东台上往建站-域名申请
作者: 风兰 . 阅读量: 5 . 发表时间:2022-09-21 04:07:13
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-东台上往建站

static 关键字最基本的用法是:
1、被 static 修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要 new 出一个类来
2、被 static 修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要 new 出一个类来
被 static 修饰的变量、被 static 修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。
在 C++ 中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。
静态成员的定义或声明要加个关键 static。静态成员可以通过双冒号来使用即 <类名>::<静态成员名>。
通过类名调用静态成员函数和非静态成员函数:

报错:
'Point::init' : illegal call of non-static member function
结论 1:不能通过类名来调用类的非静态成员函数。
通过类的对象调用静态成员函数和非静态成员函数。
:init' : illegal call of non-static member function
结论 1:不能通过类名来调用类的非静态成员函数。
通过类的对象调用静态成员函数和非静态成员函数。
class Point
{
public:
void init()
{
}
static void output()
{
}
};
void main()
{
Point pt;
pt.init();
pt.output();
}
编译通过。
结论 2:类的对象可以使用静态成员函数和非静态成员函数。
在类的静态成员函数中使用类的非静态成员。
#include <stdio.h>
class Point
{
public:
void init()
{
}
static void output()
{
printf("%d ", m_x);
}
private:
int m_x;
};
void main()
{
Point pt;
pt.output();
}
编译出错:
error C2597: illegal reference to data member 'Point::m_x' in a static member function
因为静态成员函数属于整个类,在类实例化对象之前就已经分配空间了,而类的非静态成员必须在类实例化对象后才有内存空间,所以这个调用就出错了,就好比没有声明一个变量却提前使用它一样。
结论3:静态成员函数中不能引用非静态成员。
在类的非静态成员函数中使用类的静态成员。
class Point
{
public:
void init()
{
output();
}
static void output()
{
}
};
void main()
{
Point pt;
专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-东台上往建站
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站


