首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C++】多态 ⑤ ( 重载 | 重写 | 重定义 )

一、重载、重写、重定义概念 1、重载 Overloading " 重载 " 英文名称 Overloading , 特指 " 函数重载 " ; " 重载 " 是在 同一个类中 对 函数 或 操作符 进行多次定义..., 必须与 父类的函数 的 函数原型 是相同的 ; 使用 virtual 关键字修饰 父类 和 子类 的函数 , 才叫重写 ; 如果 没有使用 virtual 关键字 , 是 " 重定义 " ; "...Parent { public: virtual void func() { cout << "子类函数" << endl; } }; 3、重定义...的函数 , 分两种情况 : 虚函数重写 : 使用了 virtual 关键字修饰 被重写的函数 , 是 重写 操作 , 会产生 多态 效果 ; 非虚函数重写 : 没有使用 virtual 关键字 , 就是 重定义...; 子类 中 重定义 父类的函数 , 会导致 父类 的 同名函数被覆盖 , 如果想要调用父类的函数 , 需要使用 父类类名::被重定义的函数() 方式调用 ; 重定义 代码示例 : class Parent

36250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言指针重难点详解

    指针pp为指向指针p的指针 定义指针变量 C语言中,定义变量时,在变量名 前 写一个 * 星号,这个变量就变成了对应变量类型的指针变量。必要时要加( ) 来避免优先级的问题。...引申:C语言中,定义变量时,在定义的最前面写上typedef ,那么这个变量名就成了一种类型,即这个类型的同义词。...在C语言中,我们让指针变量赋值为NULL表示一个空指针,而C语言中,NULL实质是 ((void*)0) ,  在C++中,NULL实质是0。...函数与指针 函数的参数和指针 C语言中,实参传递给形参,是按值传递的,也就是说,函数中的形参是实参的拷贝份,形参和实参只是在值上面一样,而不是同一个内存数据对象。...更多案例可以go公众号:C语言入门到精通

    6652219

    【C语言】宏定义

    年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量6w+、全网访问量100w+ 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠ 个人主页:謓泽的博客 专栏系列:【C】...不带参数的宏的定义方式如下(这也是我们经常用到的宏定义) #define 宏名 字符串 //没有分号,说没有分号倒不如说最好不要加分号         这里说下原因吧:因为宏定义它并不是C语言的语句,所以不用加分号...宏名实际上就是一个标识符,必须要符合C语言当中标识符的语法规定的。         标识符的规则:字母、数字、下划线,不以数字开头,注意:关键字不能作为标识符!...所以语言本身就会没办法帮我们区分二者的一些使用。那么我们平时写宏或者函数的时候的习惯是↓ 宏明全部大写形式。 函数明不要全部大写,建议第一个字母大写。...正确写法是要在宏字符串带上双引号✔ #define Name "chenze"         小知识点⇢宏是可以用来充当注释的效果的这个我在接触宏的时候我都没有想到这个问题,那么现在我们用BSC充当C+

    34510

    C语言 | register定义变量

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例89:学习C语言register定义变量的用法。 解题思路:register这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。...因为,如果定义了很多register变量,可能会超过CPU的寄存器个数,超过容量。...C语言源代码演示: #include//头文件 int main()//主函数 { register int i;//定义寄存器变量 int temp=0;//定义整型变量

    2.5K32

    【C语言】宏定义详解

    C语言宏定义详解 在C语言中,宏定义是一种强大的预处理器功能,用于在编译之前对代码进行替换和条件编译。宏定义通过预处理器指令进行定义和使用,能够使代码更加灵活和可维护。...本文将对C语言中的宏定义进行全面的讲解,包括各种相关的预处理器指令及其用法。 1. 宏定义关键词总览 关键词 用途 #define 定义宏(常量宏或函数宏)。...("Current line: %d\n", __LINE__); return 0; } 在这个示例中,#line 100 "newfile.c" 将当前行号设置为100,并将文件名设置为 newfile.c...总结 C语言中的宏定义是一种强大的预处理器功能,用于在编译之前对代码进行替换和条件编译。...理解这些宏定义的用法可以帮助开发人员编写更加高效和可维护的代码。 16. 结束语 本节内容已经全部介绍完毕,希望通过这篇文章,大家对C语言宏定义有了更深入的理解和认识。

    14410

    C语言 | register定义变量

    例89:学习C语言register定义变量的用法。 解题思路:register这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。...因为,如果定义了很多register变量,可能会超过CPU的寄存器个数,超过容量。...C语言源代码演示: #include//头文件  int main()//主函数  {   register int i;//定义寄存器变量    int temp=0;//定义整型变量...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 更多案例可以go公众号:C语言入门到静通

    2.6K32

    C语言单链表去重,C语言字符串逆置

    C语言单链表去重 已知单链表的结点结构定义如下: typedef struct _NODE_ { int data; struct _NODE_ *next; } NODE; 说明:data...函数原型 void Unique(NODE *head); 说明:参数 head 为单链表的头指针,函数将对单链表作去重处理:每个数据结点只保留第 1 个,后面与之重复的数据结点都被删去。...首先是默认链表的默认节点是不重复的,然后以第一个节点为开头,然后一个个的往后走,如果后一个节点的值与当前的值相同了,那么就把当前节点的前一个节点的指针指向当前节点的后一个节点,然后再把当前节点给释放掉,这样就完成了,这个链表的去重了...NULL; free(q); } else { s = s->next; } q = s->next; } p = p->next; } } C语言字符串逆置

    3300

    C语言中的宏定义

    简单宏定义 简单的宏定义有如下格式: [#define指令(简单的宏)]  #define 标识符替换列表 替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号...虽然简单的宏常用于定义常量名,但是它们还有其他应用。 4) 、可以对C语法做小的修改。实际上,我们可以通过定义宏的方式给C语言符号添加别名,从而改变C语言的语法。...例如,对于习惯使用Pascal的begin和end(而不是C语言的{和})的程序员,可以定义下面的宏: #define BEGIN { #define END } 我们甚至可以发明自己的语言。...##运算符 在C语言的宏中,"##"被称为 连接符(concatenator),它是一种预处理运算符, 用来把两个语言符号(Token)组合成单个语言符号。...上面提到了两种将宏定义为空的定义方式,看上去一样,实际上只要明白了宏都只是简单的代码替换就知道该如何选择了。 8. 预定义宏 在C语言中预定义了一些有用的宏, 见表预定义宏。

    6.5K10

    C语言——自定义类型

    前言 在之前的学习中,我们学习过数组,数组用来存放一些相同类型的变量;那如果我们需要存储不同类型的数据,数组就无法满足我们的需求,所以,现在就来学习一下能够存放不同类型的变量--自定义类型...(16位机器最大16,32位机器最大32;写成27,在16位机器就会出现问题 位段的成员在内存中从左向右分配,还是从右向左分配,标准尚未定义。...这里来看一下联合体的大小: union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = {0}; //计算连个变量的...对一个成员赋值,其他成员的值跟着变化 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un =...枚举常量优点: 可以增加代码的可读性和可维护性 相对于#idefine定义的标识符,枚举类型有类型检查,更加谨慎 便于调试,预处理阶段会删除#define定义的符号 使用方便,一次可以定义多个变量 枚举常量是遵循作用域规则的

    11310

    C语言之宏定义用法

    在上篇文章里面,我们分析了预处理的一个完整过程,这能够让我们理解一个写好的程序,在生成一个可执行文件,到底发生了什么,对我们在大型工程项目里面有助于对程序的理解;今天我们继续接着上篇文章的基础上,来分享有关c语言里面关于宏定义的用法...在C语言中,“宏”分为两种:无参数 和 有参数(这里有参数先不举例子,下面具体分析的话,读者可以详细看到示例来理解这个)。...下面是宏定义的基本形式: #define 宏名 宏体注意:宏体后面不要加分号“;”,这个在写代码的时候要小心点哦 宏定义的优点和缺点 优点: 1、方便程序的修改: 使用简单宏定义可用宏代替一个在程序中经常使用的常量...注:宏定义和函数的最大差别就是:宏定义是原地展开,因此没有调用开销;而函数是跳转执行再返回,因此函数有比较大的调用开销。...所以宏定义和函数相比,优势就是没有调用开销,没有传参开销,所以当函数体很短(尤其是只有一句话时)可以用宏定义来替代,这样效率高。

    2.8K60
    领券