c c++ 关于static的定义
在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。这句话怎么理解?不理解,是说这个函数只允许在类中使用,不能...
在类中的static 成员函数属于整个类所拥有,这个函数不接收this 指针,因而只能访问类的
static 成员变量。
这句话怎么理解?
不理解,是说这个函数只允许在类中使用,不能为对象所用,那这么一来这个函数用来干什么? 展开
static 成员变量。
这句话怎么理解?
不理解,是说这个函数只允许在类中使用,不能为对象所用,那这么一来这个函数用来干什么? 展开
2个回答
展开全部
并不是说静态函数只能由类调用,也是可以由对象调用的如下面的例子所示:
(你可以好好体会一下下面的输出)
#include<iostream>
using namespace std;
class A
{
private:
static int count;//用来统计A类产生的对象的个数
public:
A(){count++;}//构造函数统计A这个类的对象的个数
static int GetCount(){return count;}//返回对象的个数
};
int A::count=0;//初始化count为0,类静态成员变量在类外初始化
void main()
{
int count;
A obj1;
count=obj1.GetCount();//通过对象调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
A obj2;
count=A::GetCount();//通过类调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
count=obj1.GetCount();//通过对象调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
A obj3;
count=obj2.GetCount();//通过对象调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
}
(你可以好好体会一下下面的输出)
#include<iostream>
using namespace std;
class A
{
private:
static int count;//用来统计A类产生的对象的个数
public:
A(){count++;}//构造函数统计A这个类的对象的个数
static int GetCount(){return count;}//返回对象的个数
};
int A::count=0;//初始化count为0,类静态成员变量在类外初始化
void main()
{
int count;
A obj1;
count=obj1.GetCount();//通过对象调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
A obj2;
count=A::GetCount();//通过类调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
count=obj1.GetCount();//通过对象调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
A obj3;
count=obj2.GetCount();//通过对象调用静态方法
cout<<"A类现有对象个数为:"<<count<<endl;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询