logo头像
Snippet 博客主题

C++ study notes

  1. 结构体作为函数参数(引用传值)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
#include <string>
using namespace std;

struct Student {
int id;
string name;
float score[2];
};
//引用传递不会进行内存重新分配,因此和指针传参类似,效率很高
void OutCome(Student &s) //引用传参
{cout<<s.id<<','<<s.name<<','<<s.score[0]<<','<<s.score[1]<<endl; }

int main() {
Student stu={2013666,"Tom",{88,99}};
OutCome(stu); return 0;
}

  1. 函数
1
2
3
4
返回类型 函数名称( 参数 )
{
实体函数
}

返回类型:当实体函数中没有返回值则,返回类型为void。参数则为传递值而出现。
函数声明: 返回类型 函数名称( 参数 );时候参数的类型很重要,参数名称可以省略不写。
参数: 形式参数有三种方式进行传值,传值调用:把参数实际值传进来。 指针调用:把参数地址给形式参数。`引用调用:把参数引用复制给形式参数。`

  • 引用传递效率更高

    1
    2
    3
    4
    5
    6
    7
    8
    9
    void fun(int &x){
    x += 5; //修改的是x引用的对象值 &x = y;
    }

    void main(void){
    int y = 0;
    fun(y);
    cout<<<<\"y = \"<<y<<endl; //y = 5;
    }
  • 函数前面注释

    1
    2
    3
    4
    5
    6
    7
    /**
    * @brief 简单概述函数功能
    * @param 输入参数(None表示无输入参数)
    (* @param 当前中转的参数)
    * @retval None(表示无返回值)
    *
    */
  1. 消除C语言的通过声明带头文件传值的方法。

    梳理代码:首先在 GCS_Common.cpp 中声明指针 AP_Proximity *proximity = AP_Proximity::get_singleton(); 从AP_ Proximity中 AP_Proximity_Backend *drivers[PROXIMITY_MAX_INSTANCES]; drivers[primary_instance]->distance_min(); 通过AP_Proximity_Backend virtual float distance_min() const = 0;传递数据。
    虚函数的用法:1. 在基类用virtual声明成员函数为虚函数。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便被调用。2. 在派生类中重新定义此函数,要求函数名,函数类型,函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重新定义函数体。

  2. 由于构造函数的调用问题,默认为无参数构造函数,但是此时已经是有参构造函数,所以先要调用构造函数才能用。