当前位置: 首页 > news >正文

笔记(C++篇)—— Day 10

1.命名空间

编译查找一个变量的声明/定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。

我们要使用命名空间中定义的变量/函数,有三种方式:

①指定命名空间访问,项目中推荐这种方式。
②using将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式。
③展开命名空间中全部成员,项目不推荐,冲突风险很大,日常小练习程序为了方便推荐使用。

C++输入&输出

• <iostream> 是 Input Output Stream 的缩写,是标准的输入、输出流库,定义了标准的输入、输出对象。
• std::cin 是 istream 类的对象,它主要面向窄字符(narrow characters (of type char))的标准输入流。
• std::cout 是 ostream 类的对象,它主要面向窄字符的标准输出流。
• std::endl 是一个函数,流插入输出时,相当于插入一个换行字符加刷新缓冲区。
• <<是流插入运算符,>>是流提取运算符。(C语言还用这两个运算符做位运算左移/右移)

大量的竞赛题中,加入以下的代码,可以提高代码的效率。

#include<iostream>
using namespace std;
int main()
{// 在io需求比较高的地方,如部分大量输入的竞赛题中,加上以下3行代码// 可以提高C++IO效率ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);return 0;
}

2.缺省参数

也叫默认参数。

①缺省参数,是声明或者定义函数时,为函数的参数定义一个缺省值。

    在调用函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。

    缺省参数分为全缺省和半缺省。

②全缺省就是全部的形参有缺省值;半缺省就是部分形参给缺省值。

   C++规定,半缺省参数必须从右向左依次连续缺省,不能间隔跳跃给缺省值。

③带缺省参数的函数调用,C++规定,必须从左向右依次给实参,不能跳跃给实参。

④函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明     给缺省值

缺省参数的示例:

#include<iostream>
using namespace std;void Func(int a = 0)
{cout << a << endl;
}int main()
{Func(1);Func();return 0;
}

输出的结果为:

(如果给缺省参数值就用给出的值,如果没有,就用其原先的值)

全缺省示例:

// 全缺省
void Func1(int a = 10, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl << endl;
}

半缺省示例:

void Func2(int a, int b = 10, int c = 20)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl << endl;
}

(半缺省函数的构造方法跟缺省函数的引用遥相对应)

(这样的规定是为了适应语法,使得在赋值时不至于找不到对应的值)

3.函数重载

①C++支持在同一作用域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。这样C++函数调用就表现出来多态行为,使用更灵活。

②C语言时不支持同一个作用域中出现同名函数的。

形参不同的例子:

#include<iostream>
using namespace std;
int Add(int left, int right)
{cout << "int Add(int left, int right)" << endl;return left + right;
}
double Add(double left, double right)
{cout << "double Add(double left, double right)" << endl;return left + right;
}

(上述的两个函数虽然命名相同,但是他们的类型不同。)

void f()
{cout << "f()" << endl;
}
void f(int a)
{cout << "f(int a)" << endl;
}

(上述两个函数的参数个数不同)

(仅仅是返回值不同的话,调用时无法确定要调用哪个函数)

void f(int a, char b)
{cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{cout << "f(char b, int a)" << endl;
}

(上述两个函数的参数类型顺序不同)

(总之,两个函数不完全相同,就可以进行构造和使用)

http://www.dtcms.com/a/399057.html

相关文章:

  • Express使用教程(三 - 集成mysql)
  • Universal bovine identification via depth data and deep metric learning 阅读笔记
  • MySQL中limit 1的用法
  • 西门子840d sl 学习笔记 持续更新中。。。
  • 大良网站建设公司网站空间推荐
  • 数学教学网站开发商务网站建设PDF下载
  • 如何查看vmware主机支持的EVC(Enhanced vMotion Compatibility)模式
  • Spring List接口类型的自动注入
  • DeepSeek发布V3.1-Terminus版本,模型性能与Agent能力全面升级
  • 中国制造网外贸站宣传软文模板
  • C++?智能指针!!!
  • Python环境终极排错指南:彻底解决pip install失败问题
  • 【JAVA】Java抽象类与接口详解:特性与实战运用(超详细)
  • Shell 脚本知识体系
  • 怎么创立网站官网开发多少钱一个
  • RK3568+MCU实时机器人解决方案
  • (队列)Leetcode239 滑动窗口的最大值
  • 企业网站的建设意义付费阅读网站代码
  • 青岛网站上排名美容医疗 网站建设
  • 网站实名认证必须做么做网站的html框架
  • 采用libreoffice将word、excel等文件转换为pdf格式
  • vue3 用el-dialog实现用户协议,内容是富文本, 滚动到最后才允许关闭
  • 考研408《操作系统》复习笔记,第四章(1)《文件管理概念》
  • 如何整合 openSSL custom provider (以 TRNG 舉例)
  • 做电影网站一年赚多少钱wordpress 二级页面菜单 404
  • JAVA学习笔记——判断和循环的概念和一些习题
  • Java `synchronized` 关键字高频面试题(原理+场景+底层实现)
  • 微信企业号可以做微网站吗查看wordpress访问记录
  • 企业建站程序哪个好asp简单网站开发
  • 法术光环释义