1.静态数据成员要在类外定义。
2.类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致了它仅能访问类的静态数据和静态成员函数,如果一定要访问成员变量,可以在参数中传入对象,通过对象可以访问类的私用和公有成员.
#include<iostream>
using namespace std;
class c1
{
public:
int i;
void fun()
{
cout<<i<<endl;
}
c1(int j)
{
i=j;
}
c1()
{
}
};
class c2
{
public:
static c1 m_c1;
static int my;
static void fun2(int j)
{
cout<<++j<<endl;
}
};
c1 c2::m_c1;//初始化
int c2::my;//初始化
int main()
{
c2 foo;
foo.m_c1.fun();
foo.m_c1=c1(2);//新建一个对象
//通过两种方式调用
foo.m_c1.fun();
c2::m_c1.fun();
//通过两种方式调用
foo.fun2(100);
c2::fun2(200);
cout<<++c2::my<<" "<<c2::my<<endl;
};