C++函数中return语句的使用方法
C++中的return语句是函数中一个重要的语句,return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。
return语句有两种形式:
return;
return expression;
1、没有返回值的函数
不带返回值的return语句只能用于返回类型为void的函数,return语句是为了引起函数的强制结束,这种用法类似于循环结构中的break语句的作用。
例子:
代码如下:
void swap(int &v1,int &v2)
{
if(v1==v2)
return;
int temp=v2;
v2=v1;
v1=tmp;
}
返回类型为void的函数通常不能使用第二种形式的return语句,便是,它可以返回另一个返回类型同样是void的函数的调用 结果:
代码如下:
void do_swap(int &v1,int &v2)
{int temp=v2;
v2=v1;
v1=tmp;
}
void swap(int &v1,int &v2)
{
if(v1==v2)
return false;
return do_swap(v1,v2)
}
2、具有返回值的函数
任何返回类型不是void的函数都必须返回一个值,而且这个返回值的类型必须和函数的返回类型相同,或者能隐式转化为函数的返回类型。
尽管C++不能确保结果的正确性,便能保证函数每一次return都返回适当类型的结果。例如,下面的程序就不能通过编译:
相关推荐
-
深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
1 . 用同一个类的源对象构造一个目标对象时,会调用拷贝构造函数来构造目标对象,如果没有定义拷贝构造函数,将调用类的默认拷贝函数来构造目标对象.2 . 当一个函数的返回值为一个类的对象时,如果在调用函数中,没有定义一个对象来接收这个返回对象值,会用返回一个临时对象保存返回对象的值.在被调用函数结束时,这个临时对象被销毁.而当调用函数中有一个接受对象时,就将返回对象赋值给接收对象,这个返回对象在调用函数结束时调用析构函数.3. 当类有一个带有一个参数的构造函数时,可以用这个参数同类型的数据初始化这
-
c++中new和delete操作符用法
"new"是C++的一个关键字,同时也是操作符.当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间.调用构造函数.返回正确的指针.当然,如果我们创建的是简单类型的变量,第二步就会被省略. new用法: 1. 开辟单变量地址空间 1)new int; 开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a. 2)int *a = new int(5) 作用同上,但是同时将整数
-
C++中函数模板的用法详细解析
定义 我们知道函数的重载可以实现一个函数名多用,将功能相同或者类似函数用同一个名来定义.这样可以简化函数的调用形式,但是程序中,仍然需要分别定义每一个函数. C++提供的函数模板可以更加简化这个过程. 所谓函数模板实际上是建立一个通用函数,其涵涵素类型额形参类型不具体指定,用一个虚拟的类型来代表,这个通用函数就称为函数模板. 凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需要在模板中定义一次即可.在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能
-
C++中复制构造函数和重载赋值操作符总结
前言 这篇文章将对C++中复制构造函数和重载赋值操作符进行总结,包括以下内容: 1.复制构造函数和重载赋值操作符的定义: 2.复制构造函数和重载赋值操作符的调用时机: 3.复制构造函数和重载赋值操作符的实现要点: 4.复制构造函数的一些细节. 复制构造函数和重载赋值操作符的定义 我们都知道,在C++中建立一个类,这个类中肯定会包括构造函数.析构函数.复制构造函数和重载赋值操作:即使在你没有明确定义的情况下,编译器也会给你生成这样的四个函数.例如以下类: 复制代码 代码如下: class CTes
-
浅谈C++函数声明后面加throw()的作用(必看)
问题描述: C++里面为什么有时候在函数声明的时候在后面加throw()关键字? 解释: C++函数后面加关键字throw(something)限制,是对这个函数的异常安全作出限制:这是一种异常规范,只会出现在声明函数时,表示这个函数可能抛出任何类型的异常. void fun() throw(); //表示fun函数不允许抛出任何异常,即fun函数是异常安全的. void fun() throw(...); //表示fun函数可以抛出任何形式的异常. void fun() thr
-
C++中的操作符重载详细解析
一.什么是操作符重载操作符重载可以分为两部分:"操作符"和"重载".说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载.运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符.我们不妨先直观的看一下所谓的操作符重载: 复制代码 代码如下: #include <iostream> using namespace std; int main(){ int a = 2 , b = 3; float c =
-
c++中的string常用函数用法总结
标准c++中string类函数介绍 注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要.我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?).我们尽可以把它看成是C++的基本数据类型. 好了,进入正题---首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>
-
C++中点操作符和箭头操作符的使用详解
区别 C++中对于类来说,对于其中的成员,用点操作符.来获得, 而对于一个指向类对象的指针来说,则用箭头操作符->调用该指针所指向对象的成员. 当类定义->重载操作符后,则既可以用箭头操作符,也可以用点操作符. 重载->操作符 重载箭头操作符必须定义为类成员函数.没有显式形参(而且是类成员,唯一隐式形参是this).->的右操作数不是表达式,而是对应类成员的一个标识符,由编译器处理获取成员工作. 重载箭头操作符必须返回指向类类型的指针,或者返回定义了自己的箭头操作符的类类型对象.
-
C++中的三大函数和操作符重载(Boolan)
C++中三大函数: 析构函数 复制构造函数 =操作符(copy assignment operator) 这三个特殊的成员函数如果程序员没有实现,编译器将提供默认的实现方式. 析构函数: 形如-foo_t(),函数名和构造函数相同,前面加-,如果对象是自由变量创建,析构函数将在脱离作用域时调用.如果对象是通过new操作符创建的,则通过delete操作符调用析构函数. 复制构造函数: 形如foo_t(const foo_t& foo),以下情况复制构造函数均会被调用: 当对象按值返回时候(retu
-
C++中的friend友元函数详细解析
友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend. 我们已知道类具有封装和信息隐藏的特性.只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的.非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性.另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运
随机推荐
- vue.js实现价格格式化的方法
- 揭露88red生成htm静态页面企业建站系统漏洞第1/2页
- 比较常用的几个正则表达式匹配数字(收藏)
- JS简单生成随机数(随机密码)的方法
- mysql 5.7.17 安装教程 附MySQL服务无法启动的解决方法
- 屏蔽F1~F12的快捷键的js函数
- js实现固定显示区域内自动缩放图片的方法
- PHP数组排序函数合集 以及它们之间的联系分析
- Javascript实现网络监测的方法
- xcode中获取js文件的路径方法(推荐)
- SQL Report Builder 报表里面的常见问题分析
- Android学习教程之高仿安卓微信6.0(2)
- c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法源代码
- 使用Rhino让java执行javascript的方法实例
- C#实现打印与打印预览功能的思路及代码
- python实现装饰器、描述符
- 使用python实现ftp的文件读写方法
- python matplotlib库直方图绘制详解
- MFC实现学生选课系统
- 解决Python3.5+OpenCV3.2读取图像的问题