• C++,内联函数、对象、类、this


    一、内联函数

           编译器技术

           inline:优化执行效率

    1. 文件编译后很大
    2. 可能不会被改造,只是对编译器进行建议

           函数被inline修饰,这样的函数是内联函数,又称内嵌函数或内联函数,在编译时将所调用函数功能的代码直接嵌入到主调函数中。这样可以避免频繁调用的小函数大量消耗栈空间(栈内存)的问题 。

           inline 函数仅仅是一个对编译器的建议,所以最后能否真正内联,看编译器的意思,它如果认为函数不复杂,能在调用点展开,就会真正内联,并不是说声明了内联就会内联,声明内联只是一个建议而已。

           inline 的使用是有所限制的,不能包含复杂的结构控制语句例如 while、switch,并且不能内联函数本身不能是直接递归函数

    调用同一个文件中的内联函数,内联才会生效。

    二、函数重载

           C++允许用同一函数名定义多个函数,这些函数的参数个数和参数类型不同。这就是函数的重载(functionoverloading)。即对一个函数名重新赋予它新的含义,使一个函数名可以多用。

           C为什么函数不能重载,C++可以:C++是通过函数名与函数参数一起确定函数地址,C是通过函数名确定函数地址的。

          

    三、类与对象

           class(归类)

           面向对象语言的核心思想: 封装、继承、多态。

           类的概念:                        实体的抽象、包含数据和行为。

           对象的概念:                    通过类创建的实体

          

           类:对象所共有的属性。

           对象(实例)内存:每个对象都会占用一段运行内存,但是内存中仅有根据类声明的成员变量生成的实例成员变量,但并不会生成方法,因为方法不占运行内存,方法仅在代码段,不会因为创建对象而分配内存。所以每个对象都有对象自身独立的实例成员变量,但是每个对象都共用类中的方法。

    四、成员方法中的this

           成员方法在执行的时候,成员方法中的this表示调用该方法的对象指针。所以通过this就可以访问对象的实例成员

           this指向调用者(对象),同一类的变量访问其他变量才用this。

           运行时多态。

    五、默认参数值

           有默认参数值时,不要写重载,编译器会分不清

           当一个参数有默认参数后,那么该参数后面所有的参数都应该有默认值

           调用有默认参数值的函数时,可以不为有值的参数传值.

           默认参数值语法实用于类中成员函数,也适用于C++中C风格函数

  • 相关阅读:
    2.jvm规范简单整理
    Kubernetes 集群部署 Prometheus 和 Grafana
    【allegro 17.4软件操作保姆级教程四】布线前准备之叠层和阻抗设计
    MIT 6.S081学习笔记(第二章)
    如何在【逻辑回归】中优化控制正则化程度的超参数C
    2020年上半年软件设计师真题
    Python自动抢购脚本,学废了双十一双十二帮女票抢购心爱的礼物,隔壁女孩都馋哭了。
    WPF 截图控件之绘制箭头(五)「仿微信」
    9篇分布式机器学习系统经典论文;深度学习硬件的黄金十年|AI系统前沿动态...
    React-Redux学习之路+Redux持久化
  • 原文地址:https://blog.csdn.net/qq_52119661/article/details/133034732