1.类的构成:成员变量以及成员函数;
2.访问类的成员,如果用类的对象来访问,那么则是“对象名.成员名”;如果是对象的指针来访问,那么则是“指针名->成员名”;
3 struct和class的区别:
tip:建议把只有成员的变量设置为struct;
成员函数的定义:
class Time { public: int Hour; int Minute; int Second; void initTime(int tmphour, int tmpmin, int tmpsec) //成员函数 { Hour = tmphour; Minute = tmpmin; Second = tmpsec; }
构造函数的写法
class A { public: { void myfunc() { 实现代码 } } } //写法2 class A { public: { void myfunc() } } void A::myfunc() { 实现代码 }
1.构造函数在创建类对象时被自动调用;
2.构造函数是为了初始化类的数据成员
构造函数的实现:
Time::Time(int tmphour, int tmpmin, int tmpsec) :Hour(tmphour),Minute(tmpmin) //这就叫构造函数初始化列表 { Hour = tmphour; Minute = tmpmin; Second = tmpsec; initMillTime(0); }
注意事项:1.构造函数无返回值
2.不可手动调用构造函数
3.构造函数是public函数,因为他要被系统调用
4.构造函数如果有参数,那么其在创建对象时也应该有相应的参数
Time myTime = Time(12, 13, 52); Time myTime2(12, 13, 52); Time myTime3 = Time{ 12, 13, 52 }; Time myTime4{ 12, 13, 52 }; // Time myTime5 = { 12, 13, 52 }; //Time myTime6(); //这不可以,没参数,可能被编译器误认为是函数声明 //Time myTime7(12, 13); //不可以,缺少参数
一个类可以提供多个构造参数,代表着可以为这个类提供多种创建的方法;
若将构造函数写为如下形式
Time::Time(int tmphour, int tmpmin, int tmpsec=12)
那么可以只传递两个参数给构造函数;
加上explicit声明表示构造函数必须进行显示转换;