C++面向对象三大特性是封装、继承和多态。1. 封装通过访问控制隐藏数据,提供安全接口;2. 继承使子类复用并扩展父类成员;3. 多态通过虚函数实现同一接口不同行为,提升程序灵活性。
C++面向对象的三大特性是封装、继承和多态。这三种机制构成了面向对象编程的核心,帮助开发者构建模块化、可复用、易维护的代码结构。下面结合具体代码实例逐一讲解。
封装是指将数据(成员变量)和操作数据的方法(成员函数)绑定在一起,并通过访问控制(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; }
这样外部无法直接访问name和age,必须通过安全的方法操作,提高了数据的安全性和可控性。
继承允许一个类(子类)获取另一个类(父类)的属性和方法,实现代码复用。C++支持单继承和多继承。
比如,从Person派生出Student类:
class Student : public Person {
private:
string studentId;
public:
void setStudentId(string id) {
studentId = id;
}
void study() {
cout zuojiankuohao
phpcnzuojiankuohaophpcn getName() zuojiankuohaophpcnzuojiankuohaophpcn "正在学习。" zuojiankuohaophpcnzuojiankuohaophpcn endl;
}};
int main() {
Student s;
s.setName("小红");
s.setAge(19);
s.study(); // 输出:小红正在学习。
return 0;
}
Student继承了Person的所有公共成员,同时可以扩展自己的属性和行为。
多态是指同一个接口在不同对象上表现出不同的行为。C++中通过虚函数(virtual function)和基类指针实现运行时多态。
定义一个基类Animal,并让其子类Dog和Cat重写同一函数:
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
# 对象
# 复用
# 我是
# 是指
# 三大
# 重写
# 小明
# 小红
相关文章:
如何用IIS7快速搭建并优化网站站点?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在服务器上三步完成建站并提升流量?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
建站168自助建站系统:快速模板定制与SEO优化指南
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
如何在Windows环境下新建FTP站点并设置权限?
建站ABC备案流程中有哪些关键注意事项?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何在景安服务器上快速搭建个人网站?
如何在自有机房高效搭建专业网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何在IIS7中新建站点?详细步骤解析
专业网站建设制作报价,网页设计制作要考什么证?
如何有效防御Web建站篡改攻击?
如何快速登录WAP自助建站平台?
如何挑选优质建站一级代理提升网站排名?
如何通过西部建站助手安装IIS服务器?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
建站之星如何快速生成多端适配网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
香港服务器部署网站为何提示未备案?
家庭建站与云服务器建站,如何选择更优?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
实现虚拟支付需哪些建站技术支撑?
如何通过FTP服务器快速搭建网站?
专业公司网站制作公司,用什么语言做企业网站比较好?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
建站之星微信建站一键生成小程序+多端营销系统
建站之星导航菜单设置与功能模块配置全攻略
如何登录建站主机?访问步骤全解析
家具网站制作软件,家具厂怎么跑业务?
定制建站方案优化指南:企业官网开发与建站费用解析
零服务器AI建站解决方案:快速部署与云端平台低成本实践
韩国服务器如何优化跨境访问实现高效连接?
如何用美橙互联一键搭建多站合一网站?
如何选择香港主机高效搭建外贸独立站?
建站之星如何助力企业快速打造五合一网站?
视频网站制作教程,怎么样制作优酷网的小视频?
如何在建站主机中优化服务器配置?
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何在Windows虚拟主机上快速搭建网站?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
制作企业网站建设方案,怎样建设一个公司网站?
网站制作网站,深圳做网站哪家比较好?
*请认真填写需求信息,我们会在24小时内与您取得联系。