C++面向对象三大特性是什么_C++封装继承多态代码实战


C++面向对象三大特性是封装、继承和多态。1. 封装通过访问控制隐藏数据,提供安全接口;2. 继承使子类复用并扩展父类成员;3. 多态通过虚函数实现同一接口不同行为,提升程序灵活性。

C++面向对象的三大特性是封装、继承和多态。这三种机制构成了面向对象编程的核心,帮助开发者构建模块化、可复用、易维护的代码结构。下面结合具体代码实例逐一讲解。

1. 封装(Encapsulation)

封装是指将数据(成员变量)和操作数据的方法(成员函数)绑定在一起,并通过访问控制(public、private、protected)隐藏对象的内部实现细节,仅暴露必要的接口。

例如,定义一个Person类,将姓名和年龄设为私有成员,通过公共方法进行访问和修改:

#include 
#include 
using namespace std;

class Person { private: string name; int age;

public: void setName(string n) { name = n; }

void setAge(int a) {
    if (a > 0) age = a;
}

string getName() {
    return name;
}

int getAge() {
    return age;
}

void introduce() {
    cout zuojiankuohaophpcnzuojiankuohaophpcn "我是" zuojiankuohaophpcnzuojiankuohaophpcn name zuojiankuohaophpcnzuojiankuohaophpcn ",今年" zuojiankuohaophpcnzuojiankuohaophpcn age zuojiankuohaophpcnzuojiankuohaophpcn "岁。" zuojiankuohaophpcnzuojiankuohaophpcn endl;
}

};

// 使用示例 int main() { Person p; p.setName("小明"); p.setAge(20); p.introduce(); // 输出:我是小明,今年20岁。 return 0; }

这样外部无法直接访问nameage,必须通过安全的方法操作,提高了数据的安全性和可控性。

2. 继承(Inheritance)

继承允许一个类(子类)获取另一个类(父类)的属性和方法,实现代码复用。C++支持单继承和多继承。

比如,从Person派生出Student类:

class Student : public Person {
private:
    string studentId;

public: void setStudentId(string id) { studentId = id; }

void study() {
    cout zuojiankuohaophpcnzuojiankuohaophpcn getName() zuojiankuohaophpcnzuojiankuohaophpcn "正在学习。" zuojiankuohaophpcnzuojiankuohaophpcn endl;
}

};

int main() { Student s; s.setName("小红"); s.setAge(19); s.study(); // 输出:小红正在学习。 return 0; }

Student继承了Person的所有公共成员,同时可以扩展自己的属性和行为。

3. 多态(Polymorphism)

多态是指同一个接口在不同对象上表现出不同的行为。C++中通过虚函数(virtual function)和基类指针实现运行时多态。

定义一个基类Animal,并让其子类DogCat重写同一函数:

class Animal {
public:
    virtual void makeSound() {
        cout << "动物发出声音" << endl;
    }
virtual ~Animal() {} // 虚析构函数

};

class Dog : public Animal { public: void makeSound() override { cout

class Cat : public Animal { public: void makeSound() override { cout

int main() { Animal a1 = new Dog(); Animal a2 = new Cat();

a1-youjiankuohaophpcnmakeSound();  // 输出:汪汪!
a2-youjiankuohaophpcnmakeSound();  // 输出:喵喵!

delete a1;
delete a2;
return 0;

}

通过基类指针调用makeSound(),实际执行的是子类重写的版本,这就是多态的体现。

基本上就这些。封装保护数据,继承实现复用,多态提升灵活性,三者结合让C++面向对象编程更强大。


# ai  # c++  # ios  # stream  # 面向对象编程  # 代码复用  # 面向对象  # 封装  # 多态  # 成员变量  # 成员函数  # 父类  # 子类  # int  # void  # 指针  # 继承  # 多继承  # 虚函数  # 接口  # class  # public  # private  # protected  # function  # 对象  # 复用  # 我是  # 是指  # 三大  # 重写  # 小明  # 小红 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: Windows10系统怎么查看CPU核心数_Win10逻辑处理器数量查看  Win11局域网共享怎么设置 Win11文件夹网络共享教程【详解】  Windows11怎么自定义任务栏_Windows11任务栏自定义教程【步骤】  Win11怎么关闭开机声音_Win11系统启动提示音静音【教程】  如何在JavaScript中动态拼接PHP的base_url与前端变量  如何使用Golang sort排序切片_Golang sort排序方法示例  c++如何获取map中所有的键_C++遍历键值对提取所有key的方法  Win11怎么开启游戏模式_Win11优化游戏帧数性能【教程】  Win10如何更改任务栏高度_Windows10解锁任务栏调整大小  Win10如何更改电脑休眠时间_Windows10电源和睡眠选项调整  MAC如何修改默认应用程序_MAC文件后缀关联设置与打开方式更改【教程】  php怎么下载安装后无法解析php文件_服务器配置检查【解答】  Mac上的iMovie如何剪辑视频?(新手入门教程)  Win10任务栏天气和资讯怎么关闭 Win10禁用新闻和兴趣功能【教程】  使用类变量定义字符串常量时的类型安全最佳实践  Python装饰器复用技巧_通用能力解析【教程】  如何使用Golang配置安全开发环境_防止敏感信息泄露  Win11怎么开启上帝模式_创建Windows 11 God Mode全能文件夹【技巧】  Win10如何卸载Skype_Win10卸载Skype步骤【步骤】  Win10怎么卸载金山毒霸_Win10彻底卸载金山毒霸方法【步骤】  Python文件管理规范_工程实践说明【指导】  PHP的FastAdmin架构适合二次开发吗_特点分析【介绍】  Win10怎样卸载iTunes_Win10卸载iTunes步骤【步骤】  用Python构建微服务架构实践_FastAPI与Django对比详解  Win11怎么设置任务栏对齐方式_Windows11个性化任务栏行为  PythonGIL机制理解_多线程限制解析【教程】  Mac怎么进行语音输入_Mac听写功能设置与使用【教程】  Windows10系统怎么查看CPU温度_Win10性能监视器查看硬件数据  如何使用Golang encoding/json解析JSON_Golang encoding/json解析与序列化示例  如何在Golang中捕获HTTP服务器错误_GolangHTTP Handler中error处理  如何使用Golang实现多重错误处理_Golangerror组合与判断方法  Django 测试数据库表缺失与字段未创建问题的完整解决方案  c# 如何用c#实现一个支持优先级的任务队列  Win10怎么创建桌面快捷方式 Win10为应用创建快捷方式【步骤】  Win11怎么设置组合键快捷方式_Windows11自定义快捷键操作  Go 中实现 Python urllib.quote() 等效功能的正确方式  本地php环境出现502错误_nginx或apache502badgateway解决技巧【解答】  如何在Golang中使用log包输出不同级别日志_Golang log日志管理与分类  如何在Golang中编写异步函数测试_Golang异步操作测试策略  windows如何备份注册表_windows导出和导入注册表文件教程  Python文件操作优化_大文件与流处理解析【教程】  Win11怎么设置开机自动连接宽带_Windows11创建拨号连接计划任务  php嵌入式需要什么环境_搭建php+linux嵌入式开发环境【详解】  Win11怎么关闭透明效果_Windows11个性化颜色关闭透明  Win11怎么关闭系统声音_Win11系统提示音静音设置【详解】  Python模块的__name__属性如何由导入方式决定?  Win11资源管理器卡顿怎么办 Win11文件资源管理器重启技巧【优化】  用lighttpd能运行php吗_lighttpd配置php步骤【教程】  Mac如何将HEIC图片格式转为JPG_Mac批量转换图片【指南】  VSC里PHP变量未定义报错怎么解决_错误抑制技巧【解答】 

 2025-12-30

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.