static静态数据成员
静态数据成员:使用方法和 普通数据成员 一样. 必须初始化,一般在构造函数后初始化.
静态数据成员 为所有 类对象 共享,都可以修改,见static func 实例.
实例:
// 静态数据成员.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class MyDate
{
public:
MyDate(int y = 0,int m = 0, int d = 0);
void printDate();
private:
int myYear;
int myMonth;
int myDay;
static int objectSum;
};
MyDate::MyDate(int y ,int m, int d)
{
myYear = y;
myMonth = m;
myDay = d;
objectSum++;
}
int MyDate::objectSum = 0;
void MyDate::printDate()
{
cout<<"ObjectSum = "<<objectSum <<endl;
return ;
}
int _tmain(int argc, _TCHAR* argv[])
{
MyDate date1(1984,9,18);
date1.printDate();
MyDate date2(1984,4,13);
date2.printDate();
date1.printDate();
getchar();
return 0;
}
static静态函数
static成员函数: static + 函数原型; 仅能访问 static静态数据成员
static静态数据成员 ,可以为 所有 类对象共享,并且修改.
实例:
// statci func.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
static int i;
int j;
static void print();
};
int A::i = 0;
void A::print()
{
cout<<i<<endl;
//cout<<j<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
A a;
a.print();
a.i = 10;
a.print();
getchar();
return 0;
}