注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学习笔记

正确的方法如同学习书法,开始的时候要临摹,临摹好了然后创造自己的风格。

 
 
 

日志

 
 

[C/C++笔记]C++静态成员变量用法  

2013-03-20 21:41:24|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

C++不允许在类定义中初始化成员变量。

如果需要调用一个函数的基本实现,可以在这个函数的名字前加上一个由基类的名字和“::”操作符构成的前缀。

默认情况下,类中声明的函数和变量都与这个类的实例相关。我们也可以声明静态(static)成员函数和静态成员变量,可以在没有实例的情况下使用它们。例如:

#ifndef TRUCK_H

#define TRUCK_H

 

class Truck

{

public:

       Truck() {++counter;}

       ~ Truck() {--counter;}

private:

       static int counter;//声明静态变量

};

通过这里的静态成员变量counter,我们可以在任何时候知道还存在多少个Truck实例。Truck的构造函数会增加它的值。通过前缀“~”识别的析构函数(destructor)可以减少它的值。在C++中,在静态分配的变量超出作用域或者是在删除一个使用new分配的变量时会自动调用这个析构函数。

一个成员变量在一个类中只有单个的存在实体:这样的变量就是“类变量”(class variable)而不是“实例变量”(instance variable)。每一个静态成员变量都必须定义在.cpp文件(但是不能再次重复static关键字)中。例如:

#include "truck.h"

int Truck::counter=0; //定义

不这样做将会再链接时产生一个“unresolved symbol”(不可解析的符号)的错误信息。

  评论这张
 
阅读(944)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017