1. 抽象
对同一类对象的共同属性和行为进行概括,形成类。
数据抽象:描述类的属性和状态(对象相互区别的物理量)
代码抽象:描述类的功能
class Clock { public: void setTime(int newH, int newM, int newS); void showTime();/代码抽象 private: int hour,minute,second;//代码抽象 };2. 封装
将抽象出来的数据/代码封装在一起,形成类,将它们视为一个整体。
目的:增强安全性以及简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口(public里头的函数),以特定的访问权限(public/private/protected),来使用类的成员。
3. 继承
在已有类的基础上,进行扩展形成新的类。
4. 多态
同一个名称,不同的功能实现。
目的:达到行为标志统一,减少程序中标志符的个数。
类和对象
1. 类定义:可以给数据成员设置类内初始值,这个是用于初始化数据成员用的。
如果有构造函数对数据成员进行初始化,那就用构造函数初始化。如果没有的话,就会用类内的初始值。
class Clock { public: void setTime(int newH, int newM, int newS); void showTime(); private: int hour = 0, minute = 0, second = 0;//类内初始化 };2. 访问权限
public: 是类与外部的接口。任何外部函数都可以访问公有数据和函数。
private:只允许本类的函数访问。(类里默认的成员为private成员)
protected:与私有成员类似。继承派生有差别。
例子:
#include<iostream> using namespace std; class Clock { public: void setTime(int newH=0, int newM=0, int newS=0);//当调用这个函数时,如果给了实参 //就用实参值,如果没给,就用默认参数值(0,0,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; }