静态成员函数
在类的定义中,用关键字static修饰的数据成员称为静态数据成员
在说明对象时,不为静态类型的成员分配空间
//静态成员
#include <iostream>
using namespace std;
class CTestA
{
public:
CTestA(int a, int b, int c, int d)
{
i = a;
j = b;
x = c;
y = d;
}
void dispijxy()
{
cout << "\ni=" << i << ",j=" << j << ",x=" << x << ",y=" << y << endl << endl;
}
private:
int i, j;
static int x, y;//定义静态数据成员
};
//静态成员定义性说明
int CTestA::x = 0;
int CTestA::y = 0;
int main()
{
CTestA obj1(10, 20, 30, 40);
obj1.dispijxy();
CTestA obj2(100, 200, 300, 400);
obj2.dispijxy();
return 0;
}
#include <iostream>
using namespace std;
class CTest
{
public:
CTest(int x = 0)
{
i = x;
icount++;
}
void disp()
{
cout << "i=" << i << ",icount=" << icount << endl;
}
private:
int i;
static int icount;
};
int CTest::icount = 0;
int main()
{
CTest obj1[100];
CTest obj2[10];
obj1->disp();
return 0;
}
#include <iostream>
using namespace std;
class CTest
{
public:
CTest(int a)
{
x = a;
y = y + x;
}
static void disp(CTest obj)
{
cout << "x=" << obj.x << "y=" << y << endl;
}
private:
int x;
static int y;//静态数据成员
};
int CTest::y = 10;
int main()
{
CTest obj1(5), obj2(10);
CTest::disp(obj1);//输出结果为x=5,y=25
CTest::disp(obj2);//输出结果为x=10,y=25
return 0;
}
指向类的指针
访问指向类的指针的成员,需要使用成员访问运算符->。
CTest* pobj;
pobj = &obj1;
pobj->disp(obj1);