代码编织梦想

C++学习笔记(二) :函数

生成随机数

  • rand
int rand (void)		//生成伪随机数 
  • srand
int srand (unsigned int seed)		//seed : 产生随机数的种子

递归调用

两个必备条件:

  1. 调用自己
  2. 有终止条件(终止条件必须在递归最开始的地方)
public void recursion(参数0) {
    if (终止条件) {
        return;
    }
    recursion(参数1);
}

参数传递

  • 传值
    调用函数时,传递实参的值,将其分配给形参的储存单元,在此之后二者再无联系,是单向传递
  • 传引用
    相当于给实参起了个别名,实参和形参都指向同一个内存地址,对形参的修改也会作用在实参上,是双向传递

参数默认值

  • 预先设置函数默认参数值,调用时给出实参则采用实参值,否则采用默认参数值
  • 设置参数默认值时,有默认值参数的形参在右边,无默认参数的形参在左边
  • 原型声明在定义之前,在原型声明中设置默认参数值;
    原型声明在定义之后或只有定义,在函数定义中设置默认参数值。
    int fun(int x, int y = 5, int z = 6)

函数重载

C++允许形参类型不同或形参个数不同的函数使用相同的函数名,形成函数重载(编译器无法通过返回值或形参名不同来 区分函数)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lonelywolf0516/article/details/126983168

c++ primer 学习笔记:emplace函数_jackzhangnju的博客-爱代码爱编程_c++ emplace

emplace操作是C++11新特性,新引入的的三个成员emlace_front、empace 和 emplace_back,这些操作构造而不是拷贝元素到容器中,这些操作分别对应push_front、insert 和push

c++学习笔记 : friend类 和 friend函数_余 一的博客-爱代码爱编程_friend 类

类的friend函数(友元函数)在类的作用域外定义,却具有访问类的非public (以及public)成员的权限。 单独的函数、整个类或其他类的成员函数都可以被声明为另一个类的友元。 friend 的声明 在类定义中函

c++学习笔记:类的构造函数_wd丶路人的博客-爱代码爱编程

之前我讲了一下关于类的成员函数相关的内容C++学习笔记:类的成员函数的声明与定义 今天学习的类的构造函数是一种特殊的成员函数! 构造函数是用于给类的数据成员进行初始化的! 类的构造函数定义和声明的时候需要注意的几点是: ①构

c++学习笔记:函数的重载_wd丶路人的博客-爱代码爱编程_重载函

函数的重载只在C++语言中有,C语言是没有的!! 一、所谓的函数的重载就是:出现在相同作用域的两个函数,名字相同,但形参不同。 重载函数的好处是:不用费心给每一个函数起名字 在调用的时候C++会智能地分辨各个函数的形参的不同

c++学习笔记:函数的重载与作用域_wd丶路人的博客-爱代码爱编程

之前我讲了函数的重载相关的知识C++学习笔记:函数的重载 今天将以下关于重载的作用域 一般情况下,每一个版本的函数重载都应该在同一个作用域中声明 但是有种情况是:如果其中一个函数的声明做了一个局部的声明,那么这种情况就叫做

c++学习笔记:函数匹配(重载确定)_wd丶路人的博客-爱代码爱编程

所谓函数匹配,就是去从一个函数重载集合中调用一个想要调用的重载函数, 这种调用有三种可能性: ①C++在重载集中找到了所要调用的重载函数,既形参相匹配的那个函数 ②C++没有找到形参相匹配的函数,这时C++会报错 ③C++找

c++学习笔记:函数的参数传递---引用形参_wd丶路人的博客-爱代码爱编程

函数的引用形参只在C++语言中有,C语言是没有的 之前我将了关于函数的非引用形参C++学习笔记:函数的参数传递之非引用形参,非引用形参即为复制形参,非引用形参是不能改变实际传入的实参的值,除非是用指针形参。 关于什么是变量

读书笔记:c++11新特性:std::bind与成员函数_wanghy1995的博客-爱代码爱编程

一. 背景 在看硕哥muduo库例子代码时遇到了一个似曾相识的函数bind: EchoServer::EchoServer(muduo::net::EventLoop* loop,

C++学习笔记(3):数组和函数-爱代码爱编程

文章目录 一、数组1.1 一维数组1.2 冒泡排序法1.3 二维数组二、函数2.1 函数的定义2.2 函数的分文件编写 本博文是学习黑马程序员C++视频时做的笔记,记录一下只是方便温故知新,不做其他用途。 一、数组 1.1 一维数组 #include <iostream> using namespace std; int ma

C++学习笔记:模板参数-爱代码爱编程

本章节主要学习一下模板形参的基本知识。 模板参数有三种类型:类型模板参数、模板的模板参数(以模板作为模板的参数)、非类型模板参数。 类型模板参数 类型模板参数是我们使用模板的主要目的。也就是普通的类型模板参数,模板参数(Template parameters)声明在函数名之前的尖括号内: template<typename T> //

C++学习笔记3:拷贝构造和移动构造-爱代码爱编程

一、拷贝构造函数  1、拷贝构造函数的语法:         拷贝构造函数名字(const 类名& ) {}         拷贝构造函数名字 -> 类名         形参列表:拷贝构造函数的第一个参数必须是本类对象的 const引用。                    如果还需要其他的参数,那么必须要设置默认值(c++ 11新标

C++学习笔记5:类-爱代码爱编程

一、默认参数私有 二、多文件组织形式:                  8-2.cpp(运行问题)         Rectangle.cpp(定义类函数)         Rectangle.h(参数和函数声明) 三、内联函数 要求和特点:不能有循环/switch 较简单,在编译时直接嵌入而非调用 注意需要内联函数时,将其与参数和函数