建网站选号域名京东seo搜索优化
封装(Encapsulation)
- 概念:封装是把数据和操作数据的函数绑定在一起,对数据的访问进行限制。通过将数据成员设为私有(private)或受保护(protected),并提供公共(public)的成员函数来访问和修改这些数据,从而隐藏了对象的内部实现细节。
- 示例:
class Rectangle { private:int length;int width; public:int getLength() { return length; }int getWidth() { return width; }void setLength(int l) {if (l > 0) length = l;}void setWidth(int w) {if (w > 0) width = w;}int area() { return length * width; } };
-
- 在这个
Rectangle
类中,length
和width
是私有数据成员,外部代码不能直接访问它们。通过getLength
、getWidth
、setLength
和setWidth
这些公共成员函数来间接访问和修改数据,这样就实现了对数据的封装,保证了数据的安全性和完整性。
- 在这个
- 继承(Inheritance)
- 概念:继承允许创建一个新的类(派生类或子类),它从现有的类(基类或父类)继承属性和行为。这有助于代码的复用和扩展,派生类可以继承基类的成员变量和成员函数,并且可以根据需要添加新的成员变量和成员函数或者重写(override)基类的函数。
- 示例:
class Shape { public:virtual void draw() {std::cout << "Drawing a shape." << std::endl;} }; class Circle : public Shape { public:void draw() override {std::cout << "Drawing a circle." << std::endl;} };
-
- 在这里,
Circle
类继承自Shape
类。Shape
类有一个draw
函数,Circle
类重写了这个draw
函数,以提供特定于圆形的绘制行为。继承关系使得Circle
类可以继承Shape
类的特性,同时又能根据自身特点进行定制。
- 在这里,
- 多态(Polymorphism)
- 概念:多态是指同一种操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在 C++ 中有两种多态性:编译时多态(函数重载和模板)和运行时多态(虚函数)。运行时多态通过虚函数和指向基类的指针或引用实现,使得程序能够根据对象的实际类型来调用相应的函数。
- 示例(运行时多态):
Shape* shapePtr = new Circle(); shapePtr->draw();
- 当通过基类指针
shapePtr
(它实际指向一个Circle
对象)调用draw
函数时,由于draw
函数在Shape
类中是虚函数,并且Circle
类重写了这个函数,所以会调用Circle
类中的draw
函数,而不是Shape
类中的draw
函数。这体现了运行时多态,程序在运行时根据对象的实际类型来决定调用哪个函数。