zoukankan      html  css  js  c++  java
  • 指针 与 引用 const static

       今天在网上看了一下关于指针和引用的讨论,自己有了一点理解,记录如下。

        引用时C++中引入的,它的本质是指针,是一种特殊的指针。

        1)必须初始化,且不存在NULL的引用。

        2)作为参数传递的时候,不需形参。 指针的指针效果就和指针的引用一样,可以修改指针本身(即指针代表的内存地址)。

            传值:实参的作用除了给形参初始化外,没有其他任何作用。

            但传应用的时候,没有形参,参与的是对象本身。

            我认为所谓的传址其实质还是传真,只是指变成了地址,同样还有形参的参与。所以形参本身(而不是形参指向的东西)修改了,那么实参是不能同步的。打比方说,指针是一个快捷方式,那么修改快捷方式所指向的对象,那么所以指向该对象的快捷方式都能同步。但如果修改其中一个快捷方式,将它指向另外一个对象,那么其他的快捷方式和这个快捷方式之间就没有联系了。

        3)引用不可以改变其引用的对象。这和const修饰一样。

        4)作为返回值的时候,引用不会触发类的拷贝构造函数。

             一般传值的时候,都是先生成一个临时变量,然后调用类的拷贝构造函数。

    顺便说一下如何初始化类中的const成员变量。

    我们都知道const变量需要初始化,但是类中的const成员变量如何初始化呢?

    在构造函数中? 这肯定不行啊,那是赋值而不是初始化。 答案是在构造函数的初始化列表中,进行初始化,它在执行类的构造函数之前执行。这样每个类的对象都可以初始化为不同的值。

    static的变量  它在.h中进行声明,需要在.cpp中进行初始化。全局位置处,前面加上类的作用域,因为它不属于某个对象,而是所有对象共享,属于整个类。static const也如此初始化。

  • 相关阅读:
    Android自定义之仿360Root大师水纹效果
    Android之TextView的Span样式源码剖析
    Android之TextView的样式类Span的使用详解
    随着ScrollView的滑动,渐渐的执行动画View
    仿微信主界面导航栏图标字体颜色的变化
    android自定义之 5.0 风格progressBar
    Android性能优化之内存篇
    Android性能优化之运算篇
    How to install Zabbix5.0 LTS version with Yum on the CentOS 7.8 system?
    How to install Zabbix4.0 LTS version with Yum on the Oracle Linux 7.3 system?
  • 原文地址:https://www.cnblogs.com/jamesmile/p/1714289.html
Copyright © 2011-2022 走看看