系统地介绍一下类与对象的定义,并能够给出程序举例。
- Markdown和扩展Markdown简洁的语法
定义
对象是现实中的对象在程序中的模拟,类是对同一类对象进行概括得到的抽象。
对象是类的实例。
定义类的对象,才可以通过对象使用类中定义的功能。
-
类定义的语法形式:
-
类内初始值
可以为数据成员设置类内初始值,用于初始化数据成员。
-
类成员的访问控制
公有类型成员
私有类型成员
保护类型成员
公有类型成员:
在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问共有类型数据和函数。
私有类型成员:
1、在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问
2、如果紧跟在类名称的后面声明私有成员,则关键字private可以省略
保护类型成员:
与private类似,其差别表现在继承与派生时对派生类的影响不同
- 对象定义的语法:
类名 对象名;
eg: Clock myClock;
类中成员之间直接使用成员名互相访问
从类外访问成员使用"对象名.成员名"方式访问public成员
-
类的成员函数:
1、在类中声明函数原型;
2、可以在类外给出函数体实现,并在函数名前使用类名加以限定
3、也可以直接在类中给出函数体,形成内联成员函数
4、允许声明重载函数和带默认参数值的函数 -
内联成员函数:
1、为了提高运行时的效率,对于较简单的函数可以声明为内联形式
2、内联函数体中不要有复杂结构 (如循环语句和switch语句)
3、在类中声明内联成员函数的方式:a) 将函数体放在类的声明中;b)使用inline关键字
举例—钟表类
#include <iostream>
using namespace std;
class Clock{
public:
void setTime(int newH = 0, int newM = 0, int newS = 0);
void showTime();
private:
int hour, minute, second;
};
void Clock::setTime(int newH, int newM, int newS){
hour = newH;
minute = newM;
second = newS;
}
void Clock::showTime(){
cout << hour << ":" << minute << ":" << second;
}
int main(){
Clock myClock;
myClock.setTime(8, 30, 30);
myClock.showTime();
return 0;
}
输出的结果是:
8:30:30