封装:
封装是将数据和操作数据的方法捆绑在一起,形成一个类。通过封装,类的内部实现细节被隐藏起来,只对外提供公共的接口。这样做有以下几个好处:
- 数据安全性:封装可以防止外部代码直接访问和修改类的内部数据,只能通过类提供的方法进行操作。这样可以保证数据的安全性和完整性,避免因外部代码的错误操作而导致数据损坏。
- 代码可维护性:如果类的内部实现需要修改,只需要修改类的内部代码,而不会影响外部代码的使用。这样可以提高代码的可维护性,降低维护成本。
- 信息隐藏:封装可以将类的实现细节隐藏起来,只对外提供必要的信息。这样可以降低代码的耦合度,提高代码的可重用性。
在 C++ 中,可以通过访问限定符(public、private、protected)来实现封装。private 成员只能在类的内部访问,protected 成员只能在类的内部和子类中访问,public 成员可以在任何地方访问。
继承:
继承是一种代码复用的机制,允许一个类(子类)继承另一个类(父类)的属性和方法。继承有以下几个特点:
- 代码复用:子类可以继承父类的属性和方法,避免了重复编写代码,提高了开发效率。
- 代码扩展:子类可以在继承父类的基础上,添加新的属性和方法,实现对父类的扩展。
- 多态性:继承是多态的基础,通过继承和重写父类的方法,可以实现多态性。
- 继承权限会缩小父类中的成员在子类中的权限,不会扩大成员的权限
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
class father
{
private:
int pri;
protected:
int pro;
public:
int pub;
};
class son : public father
{
void fun()
{
//pri = 1; //因为 pri在father中是私有的所以不能再子类中访问
pro = 1;
pub = 1;
}
};
多态
多态是指同一个操作作用于不同的对象可以有不同的表现形式。在 C++ 中,多态主要通过虚函数来实现。多态有以下几个优点:
- 提高代码的可扩展性和可维护性:当需要增加新的对象类型时,只需要为新的对象类型实现相应的虚函数,而不需要修改已有的代码。这样可以提高代码的可扩展性和可维护性。
- 实现代码的灵活性:通过多态,可以根据不同的对象类型自动选择合适的操作,提高了代码的灵活性。
- 实现接口的统一:多态可以使不同的对象类型具有相同的接口,方便代码的调用和管理。
在 C++ 中,使用虚函数来实现多态。虚函数是在基类中用virtual关键字声明的函数,在派生类中可以重写虚函数。当使用基类指针或引用调用虚函数时,实际调用的是派生类中重写的虚函数。
#include<iostream>
using namespace std;
class Base {
public:
virtual void print() {
cout << "Base class" << endl;
}
};
class Derived : public Base {
public:
void print() {
cout << "Derived class" << endl;
}
};
int main() {
Base* basePtr = new Derived();
basePtr->print();
delete basePtr;
return 0;
}
Base类中的print函数是虚函数,Derived类重写了print函数。在main函数中,使用基类指针basePtr指向派生类对象,调用print函数时,实际调用的是派生类中的print函数,输出 “Derived class”。
标签:函数,子类,代码,多态,C++,三大,print,父类,中类 From: https://blog.csdn.net/m0_73949707/article/details/143492601