• 20180317细节收获


    1、函数重载要求:(1)函数名称必须相同(2)函数参数必须不同(3)返回值类型可以相同,也可以不同(4)仅仅返回值类型不同,不足以构成函数重载。

      C++代码在编译时会根据参数列表对函数进行重命名,例如void Swap(int a, int b)会被重命名为_Swap_int_intvoid Swap(float x, float y)会被重命名            为_Swap_float_float

    2、C++函数中的默认值,从编译器来看,如果一个有默认值的参数后面是一个没有默认值的参数,那么调用时编译器不好判断实参和形参的对应关系,所以当函数的一个参数设有默认值,那么它后面所有的参数必须设定默认值。

    3、C++中运算符的优先级很难记,大概就是算术>关系>逻辑。

    4、union是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,已达到节省空间的目的(还有一个节省空间的类型:位域)。 这是一个非常特殊的地方,也是联合的特征。另外,同struct一样,联合默认访问权限也是公有的,并且,也具有成员函数。 

    (1)这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。

    (2)联合里面的东西共享内存,所以静态、引用都不能用,因为他们不可能共享内存。

    (3)联合里不允许存放带有构造函数、析够函数、复制拷贝操作符等的类,因为他们共享内存,编译器无法保证这些对象不被破坏,也无法保证离开时调用析够函数。

    5、赋值运算符重载,只能作为类的成员函数,不可作为全局函数,否则会打破C++的规则。另外只需要一个本类对象作为形参,有一个隐藏的this指针,返回值为*this,可以进行连续赋值。

  • 相关阅读:
    MVVM 中 ViewModelBase和 CommandBase
    Numpy的ndarry
    dockerfile命令
    Docker命令大全
    Docker介绍
    Docker安装
    pandas入门学习
    pandas入门学习--------------------------(一)
    python签名设计
    python--numpy学习(一)
  • 原文地址:https://www.cnblogs.com/mini-coconut/p/8593198.html
Copyright © 2020-2023  润新知