C++笔记函数重载函数模板

本文介绍了C++中类的定义及使用,包括成员变量的设置与获取,并演示了如何通过函数重载实现不同类型的最大值查找。此外,还探讨了函数模板的应用以及变量引用的概念。
部署运行你感兴趣的模型镜像
#include <iostream>

using namespace std;

class Student
{
private:
    int num;
    int score;
public:
    void setdata()  //定义公用的函数setdate
    {
        cin>>num;
        cin>>score;

    }
    void display()   //定义公用函数display
    {
        cout <<"num="<<num<<endl;
        cout <<"score="<<score<<endl;

    }
};
Student stu1,stu2;
int main(){
    stu1.setdata();
    stu1.display();
    stu2.setdata();
    stu2.display();
    return 0;
}                 //在函数的后面加上不加;结果都是一样的一句话的结束符号;不影响函数的执行

在C++中也允许函数的重载,即函数的一物多。

#include <iostream>
//#include <iomanip>
using namespace std;

int max(int a, int b,int c)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;
}
float max(float a, float b,float c)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;
}
long max(long a, long b,long c)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;
}
int main(){
      int a,b,c;
    float d,e,f;
    long g,h,i;
    cin>>a>>b>>c;
    cin>>d>>e>>f;
    cin>>g>>h>>i;
    int m;
    m=max(a,b,c);
    cout<<"max_i="<<m<<endl;
    float n;
    n=max(d,e,f);
    cout<<"max_f="<<n<<endl;
    long int p;
    p=max(g,h,i);
    cout<<"max_l="<<p<<endl;
    return 0;
}                 //在函数的后面加上不加;结果都是一样的一句话的结束符号;不影响函数的执行

main函数三次调用函数max()函数,每次实参的类型不同。系统会根据实参的类型找到与之匹配的函数,然后调用该函数。当然当参数的个数不同的时候定义是的函数也能够进行重载。
C++也提供了函数模板,所谓函数模板就是建立一个通用函数,其函数的类型和形参不进行具体的指定,使用一个虚拟的类型来代表。这个通用的函数就是函数模板。

#include <iostream>
//#include <iomanip>
using namespace std;
//通用函数定义
template<typename T>
T max1(T a,T b,T c)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;

}

int main(){
    cout<<max1(5,4,6)<<endl;
    cout<<n_add(5,3,5)<<endl;
    cout<<n_add(5.35,5.5,6)<<endl;
    return 0;
    return 0;
}                 //在函数的后面加上不加;结果都是一样的一句话的结束符号;不影响函数的执行

变量的引用,在C++中使用符号&在变量之前代表对变量的引用,只要变量一被引用那么变量和被引用变量就代表同一个变量。

#include <iostream>
using namespace std;

int main() {
    int a=0;
    int &b=a;
    b=9;
    cout<<a<<endl;
    cout<<b<<endl;

    cout << "Hello, World!" << endl;
    return 0;
}

在进行变量的引用之后,改变变量b的值变量a的值也会发生改变,即变量a和b代表同一个变量。
并且对变量声明一个引用,并不另开辟内存单元,b和a都代表同一个变量单元。在声明一个引用的时候,必须对其进行初始化,即声明代表哪一个变量。
引用和被引用的变量具有相同的地址

#include <iostream>
using namespace std;

int main() {
    int a=0;
    int &b=a;
    b=9;
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<&a<<endl;
    cout<<&b<<endl;

    cout << "Hello, World!" << endl;
    return 0;
}

/home/andrew/文档/Clion/untitled2/cmake-build-debug/untitled2
9
9
0x7ffdfcae9474
0x7ffdfcae9474
Hello, World!

Process finished with exit code 0

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

andrewbytecoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值