首页 > 编程语言 >C++面向对象

C++面向对象

时间:2023-05-07 21:44:31浏览次数:35  
标签:函数 子类 基类 C++ 面向对象 派生类 重写 指针

面向对象三大特性

封装:将具体的实现过程和数据封装成一个函数,只能通过接口访问,降低耦合性

继承:子类继承父类的特征和行为,子类有父类非private方法或成员变量,子类可以对父类的方法进行重写,增强了类之间的耦合性,但是当父类中的成员变量、成员函数或者类本身被 final 关键字修饰时,修饰的类不能继承,修饰的成员不能重写或修改。

多态:多态就是不同继承类的对象,对同一消息做出不同的响应,基类的指针指向或绑定到派生类的对象,使得基类指针呈现不同的表现方式。在 C++ 中多态一般是使用虚函数来实现的,使用基类指针调用函数方法时,如果该指针指向的是一个基类的对象,

则调用的是基类的虚函数;如果该指针指向的是一个派生类的对象,则调用的是派生类的虚函数。

 

重载、重写、隐藏的区别

重载:发生在同一个作用域中,函数名称相同,但参数的类型,个数,顺序不同(即参数列表不一样),不关心函数返回值

int temp(int a)

void temp(int a)

这俩不发生重载,不被允许

隐藏:非虚函数,派生类中与基类同名的函数和成员变量都被隐藏,如需要访问则需要加上基类作用域

重写:基类的虚函数在派生类中进行重写,函数名、参数列表、返回值类型都必须同基类中被重写的函数一致,只有函数体不同。

 

 

标签:函数,子类,基类,C++,面向对象,派生类,重写,指针
From: https://www.cnblogs.com/cintang/p/17380192.html

相关文章

  • 面向对象前戏
    前言面向对象对于初学者而言是一个非常抽象的东西,直接讲解晦涩难懂,浅尝辄止!要想畅通无阻的开启它的学习之路,需要学者们先跟着Jason老师一起先来编写一个有趣的案例>>>:人狗大战案例步骤1:模拟事物既然是人狗大战,那肯定得有人和狗啊,目前我们学会的能够比较精确的描述出人和......
  • 面向对象编程
    对象的概念”面向对象“的核心是“对象”二字,而对象的精髓在于“整合“,什么意思?所有的程序都是由”数据”与“功能“组成,因而编写程序的本质就是定义出一系列的数据,然后定义出一系列的功能来对数据进行操作。在学习”对象“之前,程序中的数据与功能是分离开的,如下#数据:name、ag......
  • C++虚函数详解:多态性实现原理及其在面向对象编程中的应用
    在面向对象的编程中,多态性是一个非常重要的概念。多态性意味着在不同的上下文中使用同一对象时,可以产生不同的行为。C++是一种面向对象的编程语言,在C++中,虚函数是实现多态性的关键什么是虚函数虚函数是一个在基类中声明的函数,它可以被子类重写并提供不同的实现。在C++中,使用关......
  • C++实现一个线程安全的map
    本文是使用ChatCPT生成的,最终的代码使用起来没问题。代码是通过两轮对话完善的,后面把对话合并后跑不出理想效果就没尝试了。第一轮对话请求c++11实现一个线程安全的map,使用方法与std::map保持一致,实现[]运算符回复以下是一个简单的线程安全的map实现,可以使用[]运算符来访问和......
  • C/C++网络编程笔记Socket
    https://www.bilibili.com/video/BV11Z4y157RY/?vd_source=d0030c72c95e04a14c5614c1c0e6159b上面链接是B站的博主教程,源代码来自上面视频,侵删,这里只是做笔记,以供复习和分享。上一篇博客我记录了配置环境并且跑通了,以及碰到的一些问题这篇文章是对socket的代码解读笔记。先把服务端......
  • C++
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){ stringname,month,day,age,hobby; cin>>name>>month>>day>>age>>hobby; cout<<"我叫"<<name<<endl<<"我是"<&......
  • C++内存序
    先后一致次序(memory_order_seq_cst)如果程序服从先后一致次序,就简单地把一切事件视为按先后顺序发生,其操作与这种次序保持一致。假设在多线程程序的全部原子类型的实例上,所有的操作都保持先后一致,name它们将按某种特定次序改由单线程执行,则俩个程序的操作毫无区别。缺点:在弱保......
  • Windows亚克力特效代码实现(Dev c++可以编译通过)
    #include<windows.h>#include<dwmapi.h>//定义一个枚举类型,表示不同的窗口组合状态enumAccentState{ACCENT_DISABLED=0,ACCENT_ENABLE_GRADIENT=1,ACCENT_ENABLE_TRANSPARENTGRADIENT=2,ACCENT_ENABLE_BLURBEHIND=3,ACCENT_ENABLE_ACR......
  • c++结构体写入文档
    //#include<iostream>//#include<fstream>//usingnamespacestd;// structstudent// {// charname[20];// charsex[20];// intage;// };// intmain()// {// constintnum=2;// studentstu[num];// stringpath="1.txt";// fstreamf......
  • C++17 解构绑定
    在python中,加入我们有一个函数返回了两个数值,如:defgetData(x,y): returnx,y那么我们在使用这个函数时只需要使用两个新变量去接收函数返回值就可以:a,b=getData(4,5)但是对于C++来说就没有这么方便了,比如一个函数要返回多个数通常会把他们封装成一个pair或者vector容器......