c++命名空间 引用 const 函数的重载

c++

命名空间

命名空间:程序员自己设定的作用域,里面的是全局实体,可以把全局实体分隔开
namespace 是定义命名空间所必须写的关键字
命名空间定义只是一个大括号,没有分号
name space Aha
{
a=3;
}
使用方法

  1. using namespace Aha
  2. using Aha::a;
  3. Aha::a
    记住:如果命名空间里面嵌套了命名空间,要使用嵌套命名空间里面的内容必须作用到嵌套的命名空间里面,而不能直接通过外部的那个命名空间来调用。

引用

引用:简单的理解就是一个变量的别名,对引用操作就是对变量本身操作(&).
例如:int a; int & b=a;

  1. b为a的引用
  2. &在这里不是地址运算,标识符的作用
  3. 引用必须初始化
  4. 引用一旦初始化不可改变指向,指针可以改变指向
  5. 引用是不占存储单元的,系统也不分配
  6. 不能建立数组的引用,因为数组是由若干元素组成的集合

const

修饰成员变量的时候

int b=3;

  1. const int a =3 常量不可改变
  2. const int *a=&b 指向的值不可改变,但是指向可以改变
  3. int * const a=&b 指向的值可以改变,但是指向不能变
  4. const int * const a=&b 指向和值都不可以改变

const修饰函数参数

传递过来的参数在函数内不可以改变

const修饰成员函数

  1. const修饰的成员函数不能修改任何的成员变量(mutable修饰的变量除外)void MutNum (int x) const{};
  2. const成员函数内部不可调用非congst成员函数,因为调用会修改成员变量

const修饰函数返回值
返回值是什么类型,那么要获取返回值也必须赋予给相应的类型来获取值。
例如

const int * malloc_A(){  //指向的为常量,指针可以改变指向
    int *a=new int(2);
    return a;
}

int main()
{
    const int *a = malloc_A();
    ///int *b = mallocA();  ///编译错误,也要const int *b来接收数据
    return 0;
}

函数的重载

函数的重载:重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数。

    1. 参数不同
    2. 类型不同
    3. 顺序不同
      返回值不影响函数重载
      默认参数:在定义的时候直接赋值int Print_num(int a,int b=10),从右往左的
      占位参数:占位参数只有参数类型声明,而没有参数名声明,一般不影响函数体内部,int Print_num(int a,int b)。
      小心使用:
      int Print_num(int a,int b,int c=10);
      int Print_num(int a,int b);
      int Print_num(10,12);会报错,因为无法识别到底调用哪一个函数。

猜你喜欢

转载自www.cnblogs.com/kingjazz/p/9748992.html