硕彦博创学习记录——C++函数模板、重载、引用

C:面向过程

C++:面向对象。C++完全兼容C语言,新增对象的知识。

C语言的知识在C++中是完全适用的,这里就不多说那些原来的知识,主要说总结一下目前学习到的新知识。

1、C语言的头文件:  带.h    如:stdio.h

      C++的头文件:不带.h     如:iostream

    注:在C++文件中也可以调用C语言头文件包含的函数,所以说C++包容C。

    后缀:C.c      C++.cpp

2、输入cin>>  输出cout<<

int a;
cin>>a;    //给a赋值
cout<<a;    //打印a的值

3、C++中的指针。C++中也是有指针的,但是在C语言中使用过C语言就知道,指针指来指去很麻烦,C++中则加入了一个新内容,引用,或者说取别名

int a=100;
int& pa=a;
cout<<"a:"<<a<<endl;
cout<<"pa:"<<pa<<endl;
cout<<"&a"<<&a<<endl;
cout<<"&pa<<&pa<<endl;

运行这一代码就可以看到,变量a的值和pa的值是完全一样的,再打印它们的地址也可以看到它们的地址也是一样的,也就是说它们完全就是一个变量,pa是a的另一个名字,就像很多人都有一个大名,但是在家里家人会叫小名一样,这两个名字都是一个人,既然是同一个人自然也就只有一个人的空间。地址一样,而地址唯一,因此引用是不占内存的,改变pa或者a的值自然就改变了该变量的值,它很大程度上代替了指针的功能,使用起来也更加方便。

4、函数重载

在C语言中我们知道,每一个函数的名字都是不一样的,一旦出现相同的函数名编译就会报错,而在C++中则提供了函数重载这一功能,即允许出现重名的函数,系统会根据传递的实参的类型、个数,选择对应的函数,但是要注意,调用函数时传递的实参类型、个数一定要匹配,否则出错。

int fun(int a,int b)
{
    return a+b;
}
float fun(float a,float b)
{
    return a+b;
}
int main()
{
    cout<<fun(1,2)<<endl;
    cout<<fun(3.2f,5.5f)<<endl;
}

上述函数的运行是没有问题,系统会自行选择对应的函数运行。

5、函数模板

在写程序时我们会用到许多相同的程序,代码完全一样,但是变量的类型不同,如上面函数重载中的代码,在C语言中我们必须定义两个函数,在使用时调用,但是在C++中提供了函数模板。

template<typename T>
T fun(T a,T b)
{
    return a+b;
}
int main()
{
    cout<<fun(1,2)<<endl;
    cout<<fun(3.2f,5.5f)<<endl;
}

在函数模板中传递过来的形参的类型就是T的类型,从而将此函数中所有的T替换为该类型。

注:T的类型到底是什么是根据调用函数时传递的形参来确定的,在未调用之前,T的类型是未知的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值