当前位置: 首页 > news >正文

做soho一定要做网站吗公众号图片wordpress

做soho一定要做网站吗,公众号图片wordpress,网站建设太金手指六六十一,家乡特产网络营销方案在C中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。 静态成员的定义或声明要…

        在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。

静态成员的定义或声明要加个关键static。静态成员可通过双冒号来使用<类名>::<静态成员名>。

        在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象。希望阅读本文可以使读者对类的静态成员变量和成员函数有更为深刻的认识。

例1:

class Point{
public:
void init(){
//...}static void output(){
//...}
};int main(){Point::init();    //作用域调用非静态成员函数Point::output();    //作用域调用静态成员函数return 0;
}

编译出错:error C2352: 'Point::init' : illegal call of non-static member function

结论1:不能通过类名来调用类的非静态成员函数。

正确写法为以下代码:

class Point {
public:void init() {//...}static void output() {//...}
};int main() {Point p1;        //实例化对象p1.output();     //只能通过对象调用非静态函数Point::output();    //作用域调用静态成员函数return 0;}

编译通过。

结论2:类的对象可以使用静态成员函数和非静态成员函数。

例2:

#include <stdio.h>
class Point{public:void init(){}static void output(){printf("%d ", m_x);        //err}private:int m_x;};int main()Point pt;pt.output();return 0;
}

        编译出错:error C2597: illegal reference to data member 'Point::m_x' in a static member function

        因为静态成员函数属于整个类,在类实例化对象之前就已经分配空间了,而类的非静态成员必须在类实例化对象后才有内存空间,所以这个调用就出错了,就好比没有声明一个变量却提前使用它一样。

结论3:静态成员函数中不能引用非静态成员。

例3:

class Point{public:void init(){output();}static void output(){}
};int main(){Point pt;pt.output();return 0;}

编译通过。

结论4:类的非静态成员函数可以调用用静态成员函数,但反之不能。

例4:

class Point{public:Point(){m_nPointCount++;}~Point(){m_nPointCount--;}static void output(){printf("%d ", m_nPointCount);}private:static int m_nPointCount;
};int main(){Point pt;pt.output();return 0;        
}

编译错误!

        这是因为类的静态成员变量在使用前必须先初始化。在main()函数前加Point::m_nPointCount = 0;  再编译链接无错误,运行程序将输出1。

改正:

class Point {
public:Point() {m_nPointCount++;}~Point() {m_nPointCount--;}static void output() {printf("%d ", m_nPointCount);}
private:static int m_nPointCount;};
//类静态成员变量初始化赋值
int Point:: m_nPointCount = 0;int main() {Point pt;pt.output();return 0;
}

编译+运行通过

结论5:类的静态成员变量必须先初始化再使用。

总结:

结论1:不能通过类名来调用类的非静态成员函数。

结论2:类的对象可以使用静态成员函数和非静态成员函数。

结论3:静态成员函数中不能引用非静态成员。

结论4:类的非静态成员函数可以调用用静态成员函数,但反之不能。

结论5:类的静态成员变量必须先初始化再使用。

 

http://www.yayakq.cn/news/295061/

相关文章:

  • 建筑工程东莞网站建设中国建筑设计
  • 城乡建设部门户网站百度认证平台
  • 电子商务网站建设过程报告网站建设步骤实践报告
  • 网站模板织梦免费网站编辑 教程
  • 网站推广需要数据整改吗宁波网站建设详细策划
  • 西宁网站建设的企业一条龙建站
  • 怎么做正规网站青海建设局网站
  • 手机电脑网站建设短视频企业信用信息查询公示系统浙江
  • 网站开发怎么赚钱做国外购物的网站怎么发货
  • 小榄网站建设推广嵌入式软件开发工程师培训
  • 简单网站如何制作宁陵做网站
  • 网站初期建设该做什么品牌建设是指什么
  • 建网站安全队徽logo设计
  • 漯河住房建设局网站上海app开发公司排名
  • 做网站公司北京建设银行网站会员用户名格式
  • 做电影网站 广告收入wap网站后台模板
  • 什么专业学做网站wordpress模板 单栏
  • 福永网站推广傻瓜化免费自助建站
  • php做的汽车销售网站燕郊医疗网站建设
  • 网站建设优化服务行情免费网站电视剧全免费的app
  • 手机网站 布局环保主题的网站模板
  • 微信公众号上微做网站开一个平台要多少钱
  • 网站被百度收录吗如何做网络推广公司
  • 专业微信网站重庆市最新新闻
  • 哪个公司可以专门做网站重庆建设网站的公司简介
  • 网站能给企业带来什么论坛网站备案
  • ps毕业设计做网站界面wordpress ssl 图片
  • 惠州市网站建设公司高端企业
  • 如何免费开自己的网站网站建设上海网站建设公司网站
  • 新云手机站官网百度手机管家