C++的使用

简介: C++的使用

类与对象

class People {
public:
    //成员变量
    char name[20];
    int age;
    //成员函数
    char *getName();
    int getAge();
    //构造函数
    People();
    People(int age);
    People(int age,char name[]);
    //复制构造函数
    People(People &people);
    //析构函数
    ~People();
 
};
#include "People.h"
 
int People::getAge() {
    return age;
}
 
char *People::getName() {
    return name;
}
 
int main(){
    People people;
    people.getName();
    People *p;
    p=people;
    p->getName();
    People people1(20);
    People people2(30,"abc");
}
 
People::People(){
 
}
 
People::People(int age) {
    this->age = age;
}
//构造函数:在创建对象时,进行初始化
People::People(int age, char *name) {
    this->age = age;
    this->name = name;
}
//复制构造函数:对象备份
People::People(People &people) {
    age = people.age;
    name = people.name;
}
//析构函数 一个类只能有一个析构函数,并且不能重载,在回收对象时,对资源进行回收
People::~People(){
    age = 0;
    name = NULL;
}

2.友元

当用户希望另一个类能够访问当前类的私有成员时,可以在当前类中将 另一个类作为自己的友元类,这样在另一个类中就可以访问当前类的 私有成员了

通过friend关键字,暴露protect和private的属性,供其他无法访问的类访问

char *getHome(People &people);
对应的是
char *People::getHome(People &people) {
    return people.home;
}
 
 
friend char *getHome(People &people);
对应的是
char *getHome(People &people) {
    return people.home;
}
声明友元类
friend class Person;
声明友元函数
friend char *getHome(People &people);

命名空间

命名空间就是一个命名的范围区域,程序员在这个特 定的范围内创建的所有标识符都是唯一的

关键字namespace

 
namespace name1{
    char name[] = "wang";
}
namespace name2{
    char name[] = "long";
}

使用:

using namespace name1; 
或 name1::name;

继承

继承方式有3种派生类型,分别为公有(public)型、保护 ( protected ) 型 和 私 有 ( private ) 型

class People : public Person{


公有型派生表示对于基类中的public数据成员和成员函数,在派 生类中仍然是public;对于基类中的private数据成员和成员函数,在 派生类中仍然是private


私有型派生表示对于基类中的public、protected数据成员和成员 函数,在派生类中可以访问。基类中的private数据成员,在派生类中 不可以访问


保护型派生表示对于基类中的public、protected数据成员和成员 函数,在派生类中均为protected。protected类型在派生类的定义时 可以访问,用派生类声明的对象不可以访问,也就是说在类体外不可 以访问。protected成员可以被基类的所有派生类使用,这一性质可以 沿继承树无限向下传播。


当从父类派生一个子类并声明一个子类的对象时,它将先 调用父类的构造函数,然后调用当前类的构造函数来创建对象;在释 放子类对象时,先调用的是当前类的析构函数,然后是父类的析构函 数

多重继承中的基类构造函数 被调用的顺序以类派生表中声明的顺序为准。派生表就是多重继承定 义中继承方式后面的内容,调用顺序就是按照基类名标识符的前后顺 序进行的


虚函数允许在派生类中重新 定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和 派生类中的同名函数。关键字 virtual  


覆盖和重载的区别是,重载是同一层次函数名相同,覆盖是在继 承层次中成员函数的函数原型完全相同。


包含有纯虚函数的类称为抽象类,一个抽象类至少具有一个纯虚 函数。纯虚函数(pure virtual function)是指被标明为不具体实现的 虚成员函数,它不具备函数的功能

虚函数:允许子类重写

纯虚函数:没有实现的函数 ,子类必须实现

virtual char* getName() = 0;


目录
相关文章
|
JSON 前端开发 Java
Spring MVC
Spring MVC是基于Spring框架的Web开发模块,其核心组件包括DispatcherServlet(核心控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)和ViewResolver(视图解析器)。
Spring MVC
|
JSON 前端开发 关系型数据库
如何物业管理(园区式)系统的房屋及设备设施板块?(附架构图+流程图+代码参考)
本文介绍了园区物业管理系统中房屋与设备设施管理的核心内容,涵盖设备信息、巡检、报修、保养四大功能模块,提供系统架构图、数据模型设计、关键实现建议及可落地的代码样例。通过打通资产与运维流程,实现降本增效、减少停机与投诉,助力运维数据化、智能化。
|
算法 定位技术 数据安全/隐私保护
微信加人不频繁技巧,记得收藏哦!
微信社交拓展的科学方法论
|
监控 算法 API
用抖音电商 API 实现抖音小店商品标签精准打标
本文介绍如何利用抖音电商 API 实现商品标签精准打标,提升曝光与转化率。内容涵盖打标重要性、API 调用准备、标签自动化更新流程及最佳实践,助力商家高效运营,优化推荐效果。
|
10月前
|
数据可视化 Java 关系型数据库
认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现自动化管理。常见技术包括BPMN、Activiti和Flowable,广泛应用于CRM、TMS、WMS等系统,提升企业流程效率与灵活性。
|
存储 边缘计算 物联网
RFID技术是如何让仓库实现无人化管理?
RFID技术通过自动识别、实时数据交互和智能调度,实现仓库无人化管理。结合物联网与自动化设备,RFID可完成无人出入库、盘点、分拣与货位管理,提升效率、降低成本,广泛应用于电商、制造、冷链等领域,是智能仓储的核心支撑技术。
|
人工智能 运维 数据挖掘
瑶池数据库Data+AI驱动的全栈智能实践开放日回顾
阿里云瑶池数据库重磅推出“Data+AI能力家族”,包括DTS AI数据准备、Data Agent系列智能体及DMS MCP统一数据访问服务,重构数据与AI协同边界。通过智能化工具链,覆盖数据全生命周期,提升企业数据开发、分析、治理与运维效率,降低技术门槛,激活数据资产价值,助力企业迈向全栈智能新时代。
|
监控 测试技术 数据库连接
利用 RunnerGo 深度探索 API 性能测试:从理论到实践
API性能测试是保障应用稳定性和用户体验的关键环节。本文详细探讨了如何使用RunnerGo全栈测试平台进行高效API性能测试,涵盖测试计划创建、场景设计、参数配置到执行与分析全过程。通过电商平台促销活动案例,展示了高并发下的测试策略与优化措施,如代码与数据库查询优化、数据库连接池扩容、服务器资源配置调整及缓存策略实施等。最终显著提升系统性能,满足高并发需求。API性能测试需持续关注与优化,以适应业务发展和用户需求变化。
619 33
|
存储 自然语言处理 算法
【LeetCode 热题100】208:实现 Trie (前缀树)(详细解析)(Go语言版)
本文详细解析了力扣热题 208——实现 Trie(前缀树)。Trie 是一种高效的树形数据结构,用于存储和检索字符串集合。文章通过插入、查找和前缀匹配三个核心操作,结合 Go 语言实现代码,清晰展示了 Trie 的工作原理。时间复杂度为 O(m),空间复杂度也为 O(m),其中 m 为字符串长度。此外,还探讨了 Trie 的变种及应用场景,如自动补全和词典查找等。适合初学者深入了解 Trie 结构及其实际用途。
706 14

热门文章

最新文章