/*
在定义静态成员函数时,可以直接引用类中声明的静态成员,但不能直接引用类声明的非静态成员,如果要
引用非静态成员,可以通过对象来访问
一般格式:
static 函数类型 函数名 (形参列表)
列如:
class Date
{
punlic:
...
static void fun(Date d)
{
std::cout<<year<<"-"<<month<<"-"<<day<<std::endl;
}
};
*/
#include <iostream>
class Student
{
public:
Student(int _num);//声明构造函数
static void display(Student stu);//声明静态成员函数
int getNum();
private:
int num;//定义一般数据成员
static int tel;//定义静态数据成员
};
//定义构造函数
Student::Student(int _num)
{
num=_num;
}
//定义静态成员函数
void Student::display(Student stu)
{
std::cout<<stu.num<<std::endl;
std::cout<<"tel:"<<tel<<std::endl;
}
//定义getNum
int Student::getNum()
{
return num;
}
//初始化静态数据成员
int Student::tel=10010;
int main (int argc ,const char* argv[])
{
Student pStu(100);//创建对象
Student::display(pStu);//通过类调用静态成员函数
/*输出
100
tel:10010
*/
pStu.display(pStu);//通过对象调用静态成员函数
/*输出
100
tel:10010
*/
std::cout<<pStu.getNum()<<std::endl;//输出:100
return 0;
}