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 ;
}