C++作为一个面向对象的语言有四个特征:抽象、封装、继承、多态。
【封装】
C++中引入class来将一个类的属性和行为装进一个“黑匣子”内,这个黑匣子里各个成员默认属性是private(这也是class区别于struct的一个重要特征)。而我们可以将某些可以公开的成员的属性设为public或protected,那么我们在主函数中就可以调用class里的public成员,而class的派生类则可以调用class里的public和protected成员。
封装体内的成员是互通往来的,甚至成员函数调用数据成员时其参数括弧内都不用声明。
举例:
class Circle {
public:
double radius;
Circle() {
radius = 3;
}
Circle(double radius1) {
radius = radius1;
}
double getArea() {
return radius*radius*PI;
}
};
我们将这个类封装起来后,那么在主函数内就可以直接通过其实例化对象调用这个“黑匣子”里的public成员。
【抽象】
类的抽象其实与类的封装是紧密相关的(通过类的抽象即可完成类的封装)。
类的抽象:将类的实现与使用分离开(可以感悟封装里的最后一句话);类的描述由类创建者完成(程序员);使用者不知道类是如何实现的(类的实现细节藏在黑匣子里)。
【继承】
class的属性和构造函数传承给它的派生类(目的是避免重复撰写代码),派生类内可以增加自己所需的成员。
【多态】
不实现多态:不同对象对于相同的消息作出相同的响应。
一般情况很少用到这个,详细内容可参考相关资料。
【小结】
由上面的阐述,我自信面向对象的编程语言的特点已经深入人心。