实例引入(抽象实例--钟表)
class Clock{
public:
void setTime(int newH,int newM,int newS);
void showTime();
private:
int hour,minute,second;
};
抽象的具体概念
对同一类对象的共同属性和行为进行概括,形成类
- 先注意问题的本质,其次是实现过程或细节(即就是要有宏观意识)
- 数据抽象:描述某类对象的属性或状态(这同时也是区别对象的物理量)(例如,每个人都有身份证号,这是共有的属性,但是每个人的身份证号不一样,因此身份证号区别人的一个物理量)
- 代码抽象:描述某类对象的共有的行为特征或具有的功能
- 抽象的实现:类
封装
原因:封装起来才更安全。
封装的实现:class 中的这一对 {}
类定义的语法形式
class 类名称
{
public:
公有成员;//(外部接口一般放到公有成员里)
private:
私有成员; //一般用来隐藏数据,或者辅助函数
protected:
保护性成员; //在有继承关系的类所设计的
}
特别地,私有类型成员(private),只允许本类中的函数访问,而类外部的任何函数都不能访问。
如果紧跟在类名称的后面声明私有成员,则关键字private可以省略(这条规则不一定的记得)
对象定义的语法
类与对象的关系,就像是图纸(类)与对应产品(对象)间的关系。
继续用钟表来举例
Clock myClock; //定义对象的格式
类名 对象名;
类外访问
用 “对象名.成员名 ” 方式,访问public属性的成员
总结(用钟表实例来总结所学)
#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;
};
inline void Clock::setTime(int newH,int newM,int newS) //setTime函数是在Clock类里的,因此需要使用Clock::setTime这种形式,说明域
{
hour = newH;
minute = newM;
second = newS; //在Clock类中的成员,可以直接访问其中private中的对象
}
inline void Clock::showTime(){
cout << hour << ":" << minute << ":" << second << endl;
}
//对象的使用
int main(){
Clock myClock;
myClock.setTime(8,30,30);
myClock.showTime();
return 0;
}
本篇文章相当于在b站上看视频的一个总结。