面向对象(Object Oriented,简称OO)
其实单词Object更直观的翻译应该是物体。世界就是由各种物体组成的,比如某一辆汽车、某一个人、某一个杯子等等,这些都可以看作对象。
任何一个对象往往有一些具体的属性,比如某汽车的品牌、型号、排量,某人的性别、身高、体重,某杯子的口径,材质等等。任何一个对象往往能进行一些操作,比如汽车可以开动、拐弯,人可以走路、吃饭,杯子可以被打破等等。
所以,对象就是任何可以想象出来的具体的物体。
某些物体具有一些共性,可以将它们归类。比如A汽车和B汽车都是汽车,我和你都是人类,大杯子和小杯子都是杯子。把这种能够抽象地描述某一些具有共性的物体的词称为类(Class)。即汽车是一个类,人类是一个类,杯子也是一个类。
成员函数(Function Member),有时也称为操作或方法。成员函数就是对某个对象的操作。
把类的数据不可知性和操作实现过程不可知性称为类的封装性(Encapsulation)。类的封装性把类的设计者和类的使用者分隔开,使他们在设计程序时互不干扰,责任明确。
模板:
在C++中,有模板(Template),只需要在使用之前填写自己需要的数据类型,就是一个完整的程序了。把具有模板功能的类称为模板类。
#include <iostream>
using namespace std;
template<typename T> //模板声明,其中T为类型参数
T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
int main( )
{
int i1=185,i2=-76,i3=567,i;
double d1=56.87,d2=90.23,d3=-3214.78,d;
i=max(i1,i2,i3); //调用模板函数,此时T被int取代
d=max(d1,d2,d3); //调用模板函数,此时T被double取代
cout<<"i max="<<i<<endl;
cout<<"d max="<<d<<endl;
return 0;
}