C++三大特性封装,继承,多态简要概括

封装

封装是C++面向对象三大特性之一。C++认为万事万物皆为对象,对象上有其属性和行为。

封装的意义

将属性和行为作为一个整体,表示生活中的事物

将属性和行为加以权限控制

封装意义一

在设计类的时候将属性和行为写在一起,表现事物

封装意义二

类在设计时,可以把属性和行为放在不同的权限下,加以控制

继承

有些类和类之间存在着特殊关系

               动物

           猫         狗

小猫  大猫  小狗   大狗

我们发现在 定义这些类时,下级别的成员除了拥有上一级的共性,还拥有自己的特性

这个时候我们就可以考虑利用继承的技术,减少重复代码

多态

多态分为两类

静态多态:函数重载和运算符重载属于静态多态,复用函数名

动态多态:派生类和虚函数实现运行时多态

静态多态和动态多态的区别

静态多态的地址早绑定 编译阶段确定函数地址

动态多态的函数地址晚绑定 运行时确定函数地址

进厂尚未成功,CoderKui一定坚持~23-9-20 7:37

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会尽力回答您的问题。在C语言中,封装可以通过结构体来实现。结构体中的成员变量可以被定义为私有的,只能通过结构体提供的接口函数来访问。继承可以通过结构体嵌套来实现,子结构体可以继承父结构体中的成员变量和函数指针,并可以添加自己的成员变量和函数指针。多态可以通过函数指针来实现,父结构体中的函数指针可以指向不同的子结构体中的同名函数,从而实现多态。 下面是一个示例代码,演示了如何在C语言中实现封装继承多态的特性: ```c #include <stdio.h> // 父结构体 typedef struct { int x; } Base; // 子结构体 typedef struct { Base base; // 嵌套父结构体 int y; } Derived; // 父结构体的接口函数 void setX(Base *base, int x) { base->x = x; } int getX(Base *base) { return base->x; } // 子结构体的接口函数 void setY(Derived *derived, int y) { derived->y = y; } int getY(Derived *derived) { return derived->y; } // 多态的函数 void printX(Base *base) { printf("%d\n", base->x); } int main() { Derived d; setX(&d.base, 1); setY(&d, 2); printf("%d %d\n", getX(&d.base), getY(&d)); printX(&d.base); return 0; } ``` 在上面的示例代码中,我们定义了一个父结构体`Base`和一个子结构体`Derived`。`Derived`结构体嵌套了`Base`结构体,并添加了自己的成员变量`y`。我们也定义了一些接口函数来操作这些成员变量。`printX`函数是一个多态的函数,可以接受`Base`结构体的指针作为参数,实现了多态的特性。 希望这个示例代码可以帮助您更好地理解如何在C语言中实现封装继承多态的特性。如果还有其他问题,请随时询问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值