类的使用注意事项及系统时间函数的确定.pdf
文本预览下载声明
类的数据成员可以分为公有成员变量、私有成员变量和保护成员变量。公有成员变量可以供
外部和内部使用,私有成员变量只供类的内部使用,而保护成员变量可供内部使用,而且也
可以供子类使用。
类是对象的抽象,对象是类的实例。没有类就没有对象,但没有对象可以有类。类不占用内
存空间,对象占用存储空间。
class Date
{
public:
void SetDate(unsigned short ny,unsigned short nm,unsigned short nd);//设置日期
void Display();//显示日期
protected:
unsigned short year;//年
unsigned short month;//月
unsigned short day;// 日
};
int main()
{
Date date1;//创建对象
Date date2;
date1.SetDate(2010,8,20);//设置日期
date2.SetDate(2010,9,1);
date1.Display();//显示日期
date2.Display();
}
类的成员函数描述的是类的行为,是程序算法的实现部分,是对封装的数据进行操作的方法。
类的成员函数的原型要写在类体中,原型说明了函数的参数表和返回值类型。而函数的具体
的实现是写在类之外的。
与普通函数不同的是,实现成员函数时要指明类的名称,具体形式如下。
返回值类型 类名::函数成员名 (参数表)
{
函数体
}
写C++类时一般分为两个文件,一个.h 文件和一个.cpp 文件,在一般情况下.h 文件存放类的
声明,而在.cpp 文件中存放类定义。
实现内联成员函数的另一种方法是在类声明的头文件中加入函数定义,请看下面的例子。
class point
{
1
public:
Point(int x,int y){m_ncx=x;m_ncy=y;}//类的构造函数
int GetX(){return m_ncx;}//得到x 轴坐标
int GetY(){return m_ncy;}//得到y 轴坐标
void SetX(int x){m_ncx=x;}//设置x 轴坐标
void SetY(int y){m_ncy=y;}//设置y 轴坐标
protected:
int m_ncx;
int m_ncy;
};
const 关键字修饰变量或者函数时,其意思通常是 “只读”。比如,当const 关键字修饰变量
时,变量的值不能改变,当const 关键字修饰类成员函数时,此函数不能更改类中的数据成
员的值。
(1)常引用:用const 关键字修饰,常引用所引用的对象不会被更新,如果常引用做形参,
便不会引起对实参的更改,声明常引用的方式如下。
const 类型说明符引用名;
示例如下:
Void print(const int a)
{
a=100;//错误,因为企图更改常引用参数的值
Coutaendl;//正确,没有更改常引用参数的值
}
Void main()
{
int x=1;
print(x);
}
(2)常成员函数,与普通函数相比,后面多了一个const 关键字,常成员函数的声明如下。
const 类名 对象名
其中:
.常成员函数不能更改对象中数据成员的值,也不能调用非类常成员函数。
.如果将对象声明为常对象,那么这个对象只能调用常成员函数。
.对于常成员函数,后面的const 关键字可以作为重载函数的区分,例如:
void Draw() const;
void Draw();
注意:在程序员面试的时候,通常会出一个题目:const char *p,char const *p,char *const p
这三者有什么不同。
其答案是:const char *p 表示p 指针可以不同的字符串,但是不能更改原有字符串数据的值。
char const *p 和char *const p 是等价的,只是不同的两种写法,因为C++中没有const *的运
算符,其表示p 可以改变其指向字符串数据的值,而不能改变p 指针的指向。
显示全部