码迷,mamicode.com
首页 > 编程语言 > 详细

C++程序设计方法3:类中的静态成员

时间:2017-03-27 22:56:53      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:通过   共享   状态   程序设计   常量   main   不能   nbsp   any   

在类型前面加static修饰的数据成员,是隶属于类的,成为类的静态数据成员,也称为“类的变量”

静态数据成员被该类的所有对象共享(即所有对象中的这个数据域实际上处于同一个内存位置)

静态数据要在实现文件中赋初值,格式为:

Type ClassName::static_var = Value;

返回值类型前面加static修饰的成员函数,称为静态成员函数,它们不能调用非静态成员函数;

 

类的静态成员(数据,函数)既可以通过对象来访问,也可以通过类名字类访问;

#include <iostream>
using namespace std;

class Test
{
    static int count;
public:
    Test() { count++; }
    ~Test() { count--; }
    static int how_many() { return count; }
};

int Test::count = 0;

void print(Test t)
{
    cout << "tests:" << t.how_many() << endl;
}

int main()
{
    Test t1;
    cout << "test#" << Test::how_many() << endl;
    Test t2 = t1;
    cout << "test#" << Test::how_many() << endl;
    print(t2);
    cout << "test#" << t1.how_many() << "," << t2.how_many() << endl;
   return 0; }

 

类中的常量成员

使用const修饰的数据成员,称为类的常量数据成员,在对象的整个生命周期内不可以更改;

常量数据成员只能在构造函数的初始化列表中被设置,不允许在函数中通过赋值来设置;

 

若用const修饰成员函数,则该成员函数在实现时不能修改类的数据成员, 即函数体中不能有改变对象状态的语句;

 

若对象被定义为常量,则它只能调用以const修饰的成员函数,其他成员函数不允许调用;

 

C++程序设计方法3:类中的静态成员

标签:通过   共享   状态   程序设计   常量   main   不能   nbsp   any   

原文地址:http://www.cnblogs.com/hujianglang/p/6629320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!