设计类时要考虑的角度:
1、站在设计和实现者的角度来考虑;
2、站在使用者的角度来考虑;
3、父类,子类;
类基础:
1、类就是一个用户自己定义的数据类型;
2、一个类的构成:成员变量,成员函数;
3、我们访问类成员时,如果时类的对象,我们就是用 对象名.成员名 来访问成员。如果是指向这个对象的指针,我们就用 指针名->成员名 来访问成员;
4、public成员提供类的接口,暴露给外界,供外界调用。private成员提供各种实现类功能的细节方法,但不暴露给使用者,外界无法访问;
5、struct 是成员默认为public的class; class成员默认是private(私有);struct A { ... }; 等价于 class A { public: ...};
成员函数:
//Time.h
#ifndef __MYTIME__
#define __MYTIME__
class Time{
public:
int Hour;
int Minute;
int Second;
void initTime(const int &tmp_hour, const int &tmp_minute, const int &tmp_second);
}
#endif
//Time.cpp
void Time::initTime(const int &tmp_hour, const int &tmp_minute, const int &tmp_second){
Hour = tmp_hour;
Minute = tmp_minute;
Second = tmp_second;
}
在不同的源文件中用#include中重复定义类是允许的,全局变量是不允许的。
对象的拷贝
Time myTime;
Time myTime2 = myTime;
Time myTime3 ( myTime );
Time myTime4 { myTime };
Time myTime5 = { myTime };
如果在类中定义适当的 “赋值运算符” 就能够控制对象的拷贝行为。
私有成员
私有的不能直接访问成员变量或者私有成员函数。
//Time.h
#ifndef __MYTIME__
#define __MYTIME__
class Time{
public:
int Hour;
int Minute;
int Second;
void initTime(const int &tmp_hour, const int &tmp_minute, const int &tmp_second, const int &tmp_millsecond);
private:
int MillSecond;
void initMillSecond(const int &tmp_millsecond);
}
#endif
//Time.cpp
void Time::initTime(const int &tmp_hour, const int &tmp_minute, const int &tmp_second){
Hour = tmp_hour;
Minute = tmp_minute;
Second = tmp_second;
}
void Time::initMillSecond(const int &millsecond){
MillSecond = millsecond;
}