局部变量和全局变量的访问:

全局变量的作用域时全局,局部变量的作用域是局部,若全局和局部的变量名相同的话,局部变量的改变不会引起全局变量的改变
#include<iostream>
int a=1;
int main()
{
int a=10;
std::cout << a << std::endl;
std::cout << ::a << std::endl;
return 0;
}

局部变量名与全局变量名相同时, 可使用 :: 访问全局变量          

重载函数:

已知一个程序

int max(int num1, int num2)

{

if (num1 > num2) return num1;

else return num2;

}

如果遇到浮点数要比大小怎么办?

解决方法是方法是生成 一个同名不同参数的函数;

编译器如何匹配重载函数调用?  看参数:1. 个数    2.类型    3.顺序

#include<iostream>
using namespace std;
int max(int num1,int num2)
{
if(num1>num2)
return num1;
else
return num2;
}
double max(double num1,double num2)
{
if(num1>num2)
return num1;
else
return num2;
}
int main()
{
cout << max(,) << endl;
cout << max(3.4,5.2) << endl;
return ;
}

默认参数值:

C++ allows you to declare functions with default argument values. (可以声明带默认参数值的 函数)

The default values are passed to the parameters when a function is invoked without the arguments. (无参调用函数时,默认值会 被传递给形式参数)

定义时要注意:参数列表中默认值参数应该后置

错误的代码:

 void t1 (int x, int y=, int z);
void t2 (int x, int y=, int z);

正确的代码:

 void t3 (int x, int y=, int z=);
void t4 (int x=, int y=, int z=);

调用时需要注意:

参数列表中实参应该前置

错误代码:

t3 (, , );
t4 ( , , );

正确代码:

t3 ();    // y,z: default value
t4 (, ); // z: default value

内联函数:

Using functions in a program:

Advantages(优点): 易读易维护

Drawbacks (缺点): 运行时性能开销 • 函数调用时:参数及部分CPU寄存器的 寄存器内容进栈,控制流跳转 • 函数返回时:返回值及寄存器值出栈, 控制流跳转

Inline functions  目的:减小性能开销

 方法:代码插入到调用处

 结果:导致程序变大

用法:在函数前加关键字inline

inline int max (int a, int b)
{
return (a > b ? a : b);
}

错误的代码:

int max (int a, int b); // Call max()

 inline int max (int a, int b)
{
return (a > b ? a : b);
}

内联函数适用于短函数

C++程序设计入门(上) 函数学习的更多相关文章

  1. 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)

    第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  2. 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)

    第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回   提交作业(截止时间已过) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩 温 ...

  3. 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)

    第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...

  4. 网易云课堂_C++程序设计入门(上)_第4单元:物以类聚 – 对象和类_第4单元作业【3】- 在线编程(难度:难)

    1 在本单元作业[1]和作业[2]的基础上,创建一个MyRectangle类,并在main函数中创建类的实例.(10分) 题目难度: 难 题目内容: Screen类: 与作业[2]要求完全相同. 如果 ...

  5. 网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库

    第2节:一个简单的EGE程序 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #ifndef __cplusplus #error You must use C++ ...

  6. C++程序设计入门(上) 之对象和类

    面向对象编程: 如何定义对象?  同类型对象用一 个通用的类来定义 class C { int p; int f(); }; C ca, cb; 一个类用变量来定义数据域,用函数定义行为. class ...

  7. 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)

    1 本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值.将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值.例如a,b,c的值为1,2,3,则 ...

  8. C++程序设计入门(上) string类的基本用法

    string类中的函数 1. 构造 2. 追加 3. 赋值 4. 位置与清除 5. 长度与容量 6. 比较 7. 子串 8. 搜索 9. 运算符 追加字符串 string s1("Welc ...

  9. C++程序设计入门 之常量学习

    常量: 常量的定义格式:const datatype CONSTANTNAME = VALUE 常量的命名规范:符号常量(包括枚举值)必须全部大写并用下划线分隔单词 例如:MAX_ITERATIONS ...

随机推荐

  1. GPU 编程语言 Harlan

    Harlan 是一个声明式的.GPU 领域特定的编程语言.目前主要是用于技术实现和优化的测试用途.该语言很小,用于简化浏览新的分析器和优化. 支持的操作系统: Mac OS X 10.6 (Snow ...

  2. 一张图看懂 JS 原型链

    JS 原型链,画了张图,终于理清楚各种关系有木有 写在最后: __proto__是每个对象都有的一个属性,而prototype是函数才会有的属性!!! function Person() { } 是函 ...

  3. yum 安装LAMP

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  4. 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败

    创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...

  5. sql大数据多条件查询索引优化

    此优化的前提可以称之为最近流行的头条人物“许三多”,总数据多,查询条件多,返回列多 优化前分页查询内部select列为需要的全部列,优化后内部select只返回ID主键,外部查询关联原数据表,然后查出 ...

  6. 转移RMS模拟器

    在PowerShell中识别当前 RMS 模拟器 get-SCOMRMSemulator ?移至另一个管理服务器 –首先将一个新的RMS模拟器管理指定为一个变量 $MS = get-scommanag ...

  7. webpack笔记二 管理资源

    webpack笔记二 管理资源 webpack最出色的功能之一就是除了引入JavaScript,还可以通过loader引入任何其它类型的文件. 加载CSS 为了在JavaScript模块中import ...

  8. 沉淀再出发:PHP的中级内容

    沉淀再出发:PHP的中级内容 一.前言     前面我们介绍了PHP的简单的语法知识以及相关的用法,接下来我们将PHP+mysql以及PHP+ajax结合起来进行研究. 二.PHP+mysql     ...

  9. [T-ARA][Day by Day]

    歌词来源:http://music.163.com/#/song?id=22704409 作曲 : 金泰贤/赵英秀 [作曲 : 金泰贤/赵英秀] [作曲 : 金泰贤/赵英秀] 作词 : 金泰贤/赵英秀 ...

  10. nginx+lvs+keepalived安装

    安装nginx 配置文件和之前的一样 user nobody nobody;    #定义Nginx运行的用户和用户组 worker_processes 4;    #nginx进程数,建议设置为等于 ...