#include<iostream>
using namespace std;
class Data
{
public:
Data(int year=1999,int month=2,int day=3)
:_year(year)
,_month(month)
,_day(day)
{
++_count;
}
//拷贝构造也可用初始化列表
Data(const Data& d)
:_year(d._year)
,_month(d._month)
,_day(d._day)
{
++_count;
cout<<GetCount<<endl;
int GetCount()//静态成员函数,
{
return _count;
}
private:
int _year;
int _month;
int _day;
//静态成员变量声明,不算在sizeof里面,存储在静态区
static int _count;
};
//静态成员变量定义
int Data::_count=0;
Data f()
{
Data d;
return d;
}
int main()
{
Data d1;
Data d2;
f();
//cout<<d1._count<<endl; count公有
//cout<<d2._count<<endl; count公有
//cout<<Data::_count<<endl; count公有
cout<<d1.GetCount()<<endl; //GetCount是成员函数,对象调自己的成员函数可以通过
//cout<<Data::GetCount()<<endl;//GetCount没有this指针,会报错,可以将GetCount修改成静态成员函数
//cout<<Data::GetCount()<<endl; //GetCount是静态成员函数,没有this指针,只能访问静态成员变量
return 0;
}
//静态成员函数不可以访问非静态成员,因为非静态成员属于类,必须通过类来反问
//非静态成员函数可以访问静态成员函数,静态成员变量属于类,只要突破类的限制,就可以访问静态成员变量
C++学习-静态成员,静态成员函数
猜你喜欢
转载自blog.csdn.net/zgege/article/details/81219461
今日推荐
周排行