c++函数

1,传值与传引用

  传引用:修改实际作用与变量,“别名”,不需要拷贝;

  const:  const int var=1;常量,不能修改,顶层。

        const int *p;指向常量的指针,可指向变量/常量,但不能通过p修改。

        int const *p;常量指针,必须初始化,指针p的值不能再修改,类似var。

2,二位数组形参的形式:两种

  int (*matrix)[10];

  int matrix[][10];

  常数10需匹配

3,int main(int argc,char *argv[])

4,可变形参

  • initializer_list (C++11) 该类中的值永远是常量,不能修改。
          • 构造:initializer_list<T> lst;  ~ lst{a,b,c,..};  ~lst2(lst);  lst2=lst;
          • size(),begin(),end();
  • ...(c语言)  
    •   void foo(parm_list,...);
    • 头文件<stdarg.h>/<cstdarg>
    • va_list类型
      • void va_start(va_list ap,paramN);  初始化参数列表ap
      • type va_arg(va_list ap,type);  取下一个参数
      • void va_end(va_list ap);  结束
      • void va_capy(va_list dest,va_list src); (C++11)  拷贝src到dest.

5,使用尾置返回类型(C++11)

  auto func(int i) ->int (*)[10]  返回指针,指向含有10个整数的数组

6,使用 decltype  (C++11)

  int odd[]={1,3,5,7};

  decltype(odd)  *arrptr(int i);  返回指针,指向含有5个整数的数组,和odd一样(包括大小);

7,重载

  函数名相同,但形参列表不同:1,数量;或 2,类型;

  顶层const忽略,底层const算重载;

  const_cast<T>(var) 改变运算对象的底层const.

 

posted @ 2015-06-04 15:54  湛雷冲  阅读(179)  评论(0)    收藏  举报