• c++命名空间,缺省参数,引用


    首先为了解决命名冲突,c++提出了命名空间这一功能

    比如using namespace std;

    就是使用std(c++官方库定义的命名空间)这个命名空间里面的命名。

    using就可以直接指定本文件用那个命名空间。

    也可以用::域作用限定符

    如std::cin>>

    并且会根据传入的类型选择命名空间内重叠的函数(重载函数

    如果实在无法区分,则会报错。

    cin>>和cout<<分别是输入和输出

    endl是换行

    如cout<

    缺省参数

    可以规定参数的默认值,如果不传入相应的参数则直接使用默认值。

    只支持连续传,不支持跳着传

    并且只能在声明的地方给默认值,不能在定义的地方给。防止2个地方给的值不一样,也防止只用了声明的时候,没有默认值。

    支持重载函数。

    定义

    就是返回值不参加判定。

    参数顺序不同也是重载函数。

    有时候虽然是重载函数,但是使用的时候存在歧义,不能正常使用。

    引用

    此处的int& c=a;其实就是引用,相当于给a取别名。

    b相对于a的拷贝。

    再加上重载函数使得交换非常方便。

    第二做返回值

    但是出了作用域,返回对象已经销毁,所有我们一般不会使用引用返回。

    如果要返回,那么必须返回没有被销毁的。(例如malloc或者静态变量,全局变量)

    局部的静态变量只会被初始化一次!!!

    引用做返回值的好处

    1.可以提高效率。

    2.可以直接去修改返回对象

    权限不能放大,只能平移或者缩小。

    甚至可以给常量取别名

    此处直接double&不能成功的,但是加const就可以了,是因为很多时候赋值的时候会产生临时变量(会被设置为常量)(例如此处发生了类型转换(类型转换会产生临时变量)),所以用常量才可以接受。

    引用和指针在语法上不能混完一谈,但是本质和指针一样。

    this指针,每一次调用函数的时候都会隐藏传入一个this指针。

  • 相关阅读:
    ide unknown command (empty parse result): / 问题及解决方案
    webman 事务回滚失效问题记录
    学习JFinal
    编程狂人|从头带你撸一个 Spring Boot Starter
    vue课程79 介绍并安装vue-cli
    第41节——页面中使用路由
    什么是安全运营中心(SOC),应该了解什么
    尚硅谷Flink(三)时间、窗口
    深度学习论文笔记(一)Deep Residual Learning for Image Recognition
    说说你对Vue的keep-alive的理解
  • 原文地址:https://blog.csdn.net/qq_35639854/article/details/133801065