(部分轉載)C++的簡單函數認識


2018/3/16

1.關於操作符cin和cout

cin和cout是C++的標准輸入輸出函數

實際上,cin和cout分別可以看做是istream和ostream的對象,自然,可以調用內部的成員函數

相對普遍的成員函數有:

1.cout.setf(ios::left) cout.setf(ios::right)//基於聲明全局變量之下,設置左對齊和右對齊

2.cin.width(num);//設置函數的域寬,當所在變量沒有那么多的時候,用空格代替空位

2.關於函數的部分概述

函數的傳遞方法

1.值傳遞

void Exchg1(int x, int y)   //定義中的x,y變量被稱為Exchg1函數的形式參數
{
  int tmp;
  tmp=x;
  x=y;
  y=tmp;
  printf(“x=%d,y=%d\n”,x,y);
main()
{
  int a=4,b=6;
  Exchg1(a,b) //這里調用了Exchg1函數        
  printf(“a=%d,b=%d”,a,b)
}
}
對於x和y並沒有調換,因為值傳遞是單向的,所以當從主函數復制一份傳入所在交換函數,在操作過后,自動釋放了交換函數中的值(只是交換了x和y的值,對a和b無操作)所以主函數依舊沒有變

2.地址傳遞

Exchg2(int *px, int *py)
{
  int tmp=*px;
  *px=*py;
   *py=tmp;
  print(“*px=%d,*py=%d\n”,*px,*py);
}
main()
{
  int a=4;
  int b=6;
      Exchg2(&a,&b);
      Print(“a=%d,b=%d\n”, a, b);
}


在這里,同樣是一個交換函數,但是和值傳遞不同的是,傳遞的是指針,指針中所含的是地址,所以是對地址進行操作,由於在對x和y的操作時,改變了a和b的地址,所以達到交換的效果

3.引用傳遞

Exchg2(int &x, int &y)
{
   int tmp=x;
   x=y;
   y=tmp;
  print(“x=%d,y=%d\n”,x,y);
}
main()
{
  int a=4;
  int b=6;
      Exchg2(a,b);
      Print(“a=%d,b=%d\n”, a, b);
}

什么是引用呢?可以看做一個人的小名,一旦創建就可以代表該值本身,所以通過改變“小名”(改變了變量本身),可以做到交換的效果

參考資料:http://www.360doc.com/content/06/1128/16/13362_275711.shtml

多說幾句:

1.作為引用傳遞的賦值時,賦值的時候只能給變量賦值,不能給一個具體的數賦值

2.引用在定義的時候要進行初始化

3.引用一旦定義,其值不變

4.對於整個數組而言,不能使用引用傳遞,但是對於數組的某個單元,是可以的;

3.函數的重載

1.通俗的來說,函數的重載就是給函數改裝一下,把函數的參數,類型進行改變,所以函數就可以對不同類型的數據進行操作

add(int a,int b);
add(double c,double d);

2.作為重載,可以和重寫一起作為體現函數多態性的重要方法

4.函數的模板(Template)

1.在泛型編程中用的較多,意思就是給函數套一個模型,然后把所有的數據直接向里面代入就可以了

2.

Template<class T>T function(T num1,T num2)
//Template 作為模板的關鍵字,T作為一個替代值,相當於替代了一個數據變量(int double 等等),后面的是函數主體,
{
   ..........;
return ;
}







注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com