1 class Student 2 { 3 public: 4 /*******************成员函数**************************/ 5 Student();//默认构造函数,若定义了有参构造函数,默认构造函数会被覆盖,需手动再定义,否则无法调用 6 ~Student();//析构函数 7 /*析构函数,在对象的生存期结束时自动执行 8 1、局部对象,在出作用域时执行其析构函数 9 2、静态局部对象:在程序执行结束或exit时执行 10 3、全局对象:在程序执行结束或exit时执行 11 */ 12 13 Student(int id,char* name,int s,Group g):sex(s),group(g);//成员初始化构造函数 14 15 Student(const Student& sOther);//拷贝构造函数 16 17 Student(int id);//转换构造函数:将int转换为Student 18 19 operator int();//类型转换函数,将Student转换为int 20 21 //若同时存在转换构造函数和类型转换函数,可能会出现二义性,如: 22 23 Student operator +(const Student& s1);//+运算符重载 24 25 Student operator =(const Student& s1);//赋值运算符重载 26 27 friend ostream operator <<(ostream& output,const Student& s1);//友元函数,重载流插入运算符<< 28 29 friend istream operator >>(istream& input,const Student& s1);//友元函数,重载流提取运算符>> 30 31 void Display() const;//常成员函数,不能修改类中数据成员 32 33 static void test();//静态成员函数,无法访问非静态成员,其属于整个类 34 35 inline void tt();//inline内置函数,系统自动将在类内部定义的成员函数申明为内置函数 36 37 /*******************成员函数**************************/ 38 private: 39 /*******************数据成员**************************/ 40 int sId; 41 char sName[20]; 42 char *pName; //指针,需要在构造函数对其分配内存 43 static int age; //静态数据成员,其属于整个类,在类外初始化 44 45 /*********************常量成员和子对象********************************/ 46 //只能通过成员初始化列表对其进行初始化 47 //定义对象执行顺序: 48 //1、分配内存 49 //2、初始化成员列表 50 //3、执行构造函数 51 const int sex; //常量数据成员,定义时即初始化 52 Group group; //子对象 53 /*********************常量成员和子对象********************************/ 54 /*******************数据成员**************************/ 55 }