函数与重载的学习

一些常见的预定义函数

cmath(C语言中的math.h)

  • sqrt() 平方根
  • pow() 乘方
  • abs() int类型取绝对值
  • labs() long类型取绝对值
  • fabs() double类型取绝对值
  • ceil() 向上取整
  • floor() 向下取整

 四舍五入程序举例

 int round(double number)
{
    return static_cast<int>(floor(number+0.5));
}

cstdlib(c语言中stdlib.h)

  • exit() 结束程序
  • rand() 随机数(可用srand()函数设定rand函数的seed)

随机数生成举例

int getRound()
{
    srand(static_cast<int>(time(NULL)));
    return rand()%10;
}

函数的两种声明方法

第一种,是常见的:

int add(int x,int y);

第二中:(仅限于声明函数时,定义是必须给出形参)

int add(int,int);

参数的值传递和引用传递

值传递

仅仅传递了实参的值。实际上是一个局部变量,调用函数时,首先计算出,实参的值然后该值成为传值惨数(实际上就是一个局部变量)的初始值。不能通过调用函数改变实参的值。

int add(int x,int y);

引用传递

引用本身就是变量的别名。函数调用时使用引用传递,是用实参变量(不是值)来代替形参。实参变量直接被带入函数,这样就可以通过改变参数变量改变实参的值。
定义函数式,在形参变量名前加“&”。

int add(int &x,int &y);

函数的重载

C++允许两个函数具有相同的函数名,这就叫做函数的重载。(但是这些函数的定义必须具有不同的参数数目,或者不同的参数类型

关于根据const和非const特性进行重载的情况,一些编译器支持,但是C++标准是不予许这种做法的。

举例:

int add(int x,int y);//两个int值相加是调用这个函数
{
return x+y;
}
int add(int x,int y,int z);//三个int值相加是调用这个函数
{
return x+y+z;
}

有一点要注意,尽量不要让两个毫无关系的函数使用同一个函数名,这样容易造成混淆。


函数的测试与调试

assert宏

assertion(断言)是一个或者为true或者为false的语句。assertion同来检验程序的正确性。
原型定义:

#include <assert.h> 
void assert( int expression ); 

assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,
然后通过调用 abort 来终止程序运行。
举例:

#include <stdio.h> 
#include <assert.h> 
#include <stdlib.h> 
int main( void ) 
{ 
       FILE *fp; 

       fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件 
       assert( fp );                           //所以这里不会出错 
       fclose( fp ); 

       fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败 
       assert( fp );                           //所以这里出错 
       fclose( fp );                           //程序永远都执行不到这里来 
       return 0; 
} 

可以使用

#define NDEGUG

来禁用assert宏。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值