默认实参、局部对象

  • 函数声明由函数返回类型、 函数名和形参列表组成。 形参列表必须包括形参类型,但是不必对形参命名。 这三个元素被称为函数原型, 函数原型描述了函数的接口。
  •  1 #include <iostream>
     2 using namespace std;
     3 double func(double a = 555)
     4 {
     5     cout << a <<endl;
     6     return a;
     7 }
     8 int main()
     9 {
    10     func();
    11     return 0;
    12 }

     

  • 1 string screenInit(string::size_type height = 24,
    2 string::size_type width = 80,
    3 char background = ' ' );
    4 
    5 string screen;
    6 screen = screenInit(); // equivalent to screenInit (24,80,'')
    7 screen = screenInit(66); // equivalent to screenInit (66,80,'')
    8 screen = screenInit(66, 256); // screenInit(66,256,' ')
    9 screen = screenInit(66, 256, '#');
  • 设计带有默认实参的函数,其中部分工作就是排列形参,使最少使用默认实参的形参排在最前,最可能使用默认实参的形参排在最后。
  • 局部对象
    • 自动对象(默认)
      只有当定义它的函数被调用时才存在的对象称为自动对象。 自动对象在每次调用函数时创建和撤销
    • 静态局部对象
      一个变量如果位于函数的作用域内,但生命期跨越了这个函数的多次调用,这种变量往往很有用。则应该将这样的对象定义为 static(静态的)
       1 #include <iostream>
       2 using namespace std;
       3 size_t count_calls()
       4 {
       5     static size_t ctr = 0; // value will persist across calls
       6     return ++ctr;
       7 }
       8 int main()
       9 {
      10     for (size_t i = 0; i != 10; ++i)
      11         cout << count_calls() << endl;
      12     return 0;
      13 }

       

       

posted @ 2020-06-22 22:02  幻想Elapse  阅读(140)  评论(0编辑  收藏  举报