命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶( 二 )


  • C++用到的是cout(控制台)和cin(键盘)两个函数进行操作 , 使用是必须包含iostream的头文件及 std标准命名空间 。
  • C++头文件不带.h,将std标准命名空间进行展开 。
  • #include <iostream>using namespace std;// 将std标准命名空间进行展开int main(){ cout << "hello world" << endl; // std::cout << "hello world" << endl; 也可以这样写就不展开std标准命名空间 return 0;}使用C++输入输出更方便,不需增加数据格式控制,比如:整形–%d,字符–%c
    int main(){ int a = 0; double b = 0.0; cin >> a; cin >> b; cout << "a = " << a << " b = " << b << endl; system("pause"); return EXIT_SUCCESS;}运行结果如下:
    命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶

    文章插图
    缺省参数概念:
    缺省参数是声明或定义函数时为函数的参数指定一个默认值 。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参 。
    void PrintNum(int n = 0){ cout << n << endl;}int main(){ PrintNum();// 无参数时 , 使用参数的默认值 PrintNum(10);// 有参数时,使用指定的实参 system("pause"); return EXIT_SUCCESS;}全缺省参数参数都要一个默认值,给定的实参依次从左向右给形参赋值
    注意:我们在调用函数时,只能缺省最右边的若干个参数,形如:Fun(4, , 6);这种调用是错误的调用方法 。
    void Func(int a = 10, int b = 20, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl;}int main(){ // 实参从左向右一次给形参赋值 Func(); Func(1); Func(1, 2); Func(1, 2, 3); system("pause"); return EXIT_SUCCESS;}运行结果如下:
    命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶

    文章插图
    半缺省参数只有部分形参给定了默认值,半缺省参数必须从右往左依次来给出,不能间隔着给 。
    值得注意的是,缺省参数只能为最右边的若干个 。
    形如:void Fun(int a=10, int b, int c = 30) { }这样的语句是错误的用法 。
    形如:Fun(1, ,3)这种调用也是错误的 。
    void Func(int a, int b = 10, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl;}int main(){ Func(1); Func(1, 2); Func(1, 2, 3); system("pause"); return EXIT_SUCCESS;}运行结果如下:
    命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶

    文章插图
    注意:
    • 半缺省参数必须从右向左依次给出,不能间隔着给
    • 缺省参数不能在声明中和定义中同时出现(推荐写在声明中)
    • 缺省参数必须是全局变量和常量
    • C语言中不支持缺省参数
    const限定符const修饰符的作用
    • const类型定义: 指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令
    • 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性
    • 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高
    • 【命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶】可以节省空间,避免不必要的内存分配
    规则
    • const离谁近,谁就不能被修改
    • const修饰一个变量时 , 一定要给这个变量初始化 , 若不初始化,在后面也不能初始化
    分类
      常变量:  const 类型说明符 变量名  常引用:  const 类型说明符 &引用名  常对象:  类名 const 对象名  常成员函数:  类名::fun(形参) const  常数组:  类型说明符 const 数组名[大小]      常指针:  const 类型说明符* 指针名 ,类型说明符* const 指针名

    推荐阅读