C++ 函数、结构体(指针、数组)

函数

函数的重载

        函数重载是指在同一个作用域中可以定义多个函数,这些函数的名称相同但参数列表不同。

        通过参数列表的不同,编译器可以区分出调用哪个函数。

        

#include<iostream>
using namespace std;

void print(int num){
    cout<<"打印整数:"<<num<<endl;
}
void print(double num){
    cout<<"打印浮点数:"<<num<<endl;
}
int main(){
    print(10); //调用print(int)
    print(3.14);//调用print(double)
    return 0;
}

函数重载的规则如下:

1、函数名称必须相同;

2、参数列表不同(参数个数、顺序、类型);

3、与返回值无关。

好处:函数重载可以提高代码的可读性和复用性。

函数签名(signature)

        函数签名由函数的名称和参数列表组成,用于唯一标识一个函数

        作用:函数签名用于函数重载和函数重写的类型匹配

内联函数(了解)

        内联函数是指在函数声明前加上关键字“inline"的函数

        作用:告诉编译器将该函数的定义插入到调用它的地方,而不是通过函数调用的方式执行

inline int add(int a,int b){
    return a+b;
}

int main(){
    int result = add(3,4);
    return 0;
}

        优点:减少函数调用的开销

        适用场景:函数体较短、频繁调用的情况

C++中的结构体、指针、数组

        与c语言中的结构体类似,但可以写函数

//定义结构体

struct Student{
    string name;
    int age;
    double score;
//C++中可以在结构体中直接编写函数
    void study(){
        cout<<name<<"is studying"<<endl;
    }
}

        指针、数组和C语言一样

综合案例

1、编写一个学生(student)结构体,有“姓名”、“年龄”、“成绩"三个属性,并有"学习"的函数
2、创建一个长度为3的学生数组;
使用键盘录入的方式,填写学生信息,并添加到数组中3、
4、调用每个学生的“学习”函数,

#include<iostream>
#include<string>
using namespace std;
//定义学生结构体
struct Student {
    string name;
    int age;
    double score;
    void study() {
        cout << name << "正在学习" << endl;
    }
};
int main() {
    //创建数组,并创建学生指针
    const int SIZE = 3;
    Student students[SIZE];//学生数组
    Student* ptrStudent;//指向学生结构体的指针

    //使用for 循环,录入学生信息

    for (int i = 0; i < SIZE; i++) {
        ptrStudent = &students[i];//将指针指向当前学生
        cout << "第" << i + 1 << "个学生姓名:";
        cin >> ptrStudent->name;
        cout << "第" << i + 1 << "个学生年龄:";
        cin >> ptrStudent->age;
        cout << "第" << i + 1 << "个学生成绩:";
        cin >> ptrStudent->score;
    }
    //调用学习函数
    for (int i = 0; i < SIZE; i++) {
        ptrStudent = & students[i];
        ptrStudent->study();
    }

    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值