C++基础知识 (命名空间、输入输出、函数的缺省参数、函数重载)

这篇具有很好参考价值的文章主要介绍了C++基础知识 (命名空间、输入输出、函数的缺省参数、函数重载)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

⭐️ 第一个 c++ 代码

🌠 例1:

#include <iostream>
using namespace std;

int main() {

	cout << "hello world" << endl;

	return 0;
}
  • #include <iostream> 标准输入输出
  • stdc++ 标准库的命名空间,将标准库的定义实现都放到这个命名空间中
  • using namespace std 展开 std 里的内容
  • cout   c 代表的是 console 控制台的意思,out 有输出的意思
  • << 流运算符 流插入
  • endl 等价于 '\n'

⭐️ 命名空间

c++ 中,变量、函数和类的名称存在于全局作用域中,可能会导致冲突。比如:在 #include <stdlib.h> 中存在一个 rand 函数,当你再定义一个全局的 rand 变量这时编译器就会报错。而使用命名空间将变量、类型、函数放在一个域中以放命名冲突,使用 namespace 关键字来创建命名空间。

🌟 命名空间的定义和访问

语法: namespace name {}

🌠 例2:

// 定义命名空间
namespace mySpace {
	char name[10] = "sunwukong";
	int age = 18;
	char gender = 'male';

	int add(int num1, int num2) {
		return num1 + num2;
	}

	struct Node {
		int val;
		struct Node* next;
	};
}

// 命名空间的访问
int main() {

	struct mySpace::Node node;
	node.val = 10;

	cout << mySpace::age << endl;

	cout << mySpace::add(10, 20) << endl;

	return 0;
}

ps: 若是变量或者函数直接使用命名空间的 name::来访问即可。但是如果是结构类型 mySpace::struct Node 这样的写法是 error 的。要在 struct 后面写命名空间 struct mySpace::Node

🌟 命名空间可以嵌套

namespace N1 {
	int a;
	int b;
	namespace N2 {
		int c;
		int d;
	}
}

ps: 还有一种情况,若在许多文件中存在多个相同的命名空间,编译器最后会合成为同一个命名空间。

🌠 例3:

#include <iostream>
using namespace std;

int num = 10;

int main() {

	int num = 1;

	cout << num << endl;

	return 0;
}

ps: 以上代码会有局部优先的问题,所以最终 num 访问结果是 1,但是也可以访问到全局的 num 使用 :: 默认代表访问全局域 ,例如:cout << ::num << endl;:: 前面加上命名空间的名称代表访问命名空间的某个对象。

🌟 命名空间的使用

  1. name::a 加命名空间名称及作用域限定符
  2. using name::a 使用 using 将命名空间中某个成员引入
  3. using namespace name 使用 using namespace 引入命名空间

⭐️ c++ 输入输出

🌠 例4:

#include <iostream>
using namespace std;

int main() {

	int num = 0;
	double score = 0.0;

	cin >> num >> score;
	cout << num <<" " << score << endl;

	return 0;
}
  • cin、cout   c 代表 console 有控制台的意思 in 有内的意思 out 有外的意思,cin 标准输入对象(键盘)、cout 标准输出对象(控制台),必须包含 <iostream> 以及命名空间 std
  • coutcin 是全局的的流对象,它们都包含在 <iostream> 头文件中
  • << 是留插入运算符、>> 是流提取运算符
  • c++输入输出可以自动识别类型

⭐️ 函数的缺省参数

缺省参数是声明或者定义函数时为函数的参数指定一个默认值。在调用函数时,如果没有指定实参则采用默认值(缺省参数),否则使用指定实参。

🌠 例5:

#include <iostream>
using namespace std;

void Func(int num = 10) {
	cout << num << endl;
}

int main() {

	Func();		// 10
	Func(20);	// 20

	return 0;
}
  • 全缺省参数
#include <iostream>
using namespace std;

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

int main() {

	Func();
	Func(100);
	Func(100 , 200);
	Func(100 , 200 , 300);

	return 0;
}

C++基础知识 (命名空间、输入输出、函数的缺省参数、函数重载),c++,c++,学习

  • 半缺省参数
void Func(int a , int b = 20, int c = 30) {
	cout << a << endl;
	cout << b << endl;
	cout << c << endl << endl;
}

ps: 半缺省参数必须从右向左依次来给出,不可以隔着给。缺省参数不能在函数声明和定义中同时出现(一般在声明中出现)


⭐️ 函数重载

c++ 允许在同一个作用域中声明功能类似的同名函数,这些同名函数的形参类型(参数个数、类型、顺序)不同, 常用来处理功能类似但数据类型不同的问题。文章来源地址https://www.toymoban.com/news/detail-615846.html

// 类型不同
int add(int a, int b) {

	return a + b;
}

double add(double a, double b) {

	return a + b;
}

// 顺序不同
void f(int a, char b) {
	cout << "void f(int a, char b)" << endl;
}

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

// 个数不同
void f() {
	cout << "void f()" << endl;
}
	
void f(int a) {
	cout << "void f(int a)" << endl;
}

到了这里,关于C++基础知识 (命名空间、输入输出、函数的缺省参数、函数重载)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [C++] C++入门第一篇 -- 命名空间,输入输出,缺省函数,函数重载底层原理

      目录 1、  2、命名空间 2.1 命名空间的定义 2.2 命名空间的使用方式 2.2.1 加命名空间名称及作用域限定符 2.2.2 使用using将命名空间中某个成员引入 2.2.3 使用using namespace 命名空间名称引入 3、C++输入与输出 4、缺省参数 4.1 缺省参数的概念 4.2 缺省参数分类 4.2.1 全缺省参

    2024年02月15日
    浏览(29)
  • 【C++那些事儿】初识C++ 命名空间,C++中的输入输出以及缺省函数

    君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C++ 游戏开发 Hello,米娜桑们,这里是君兮_,数据结构和算法初阶更新完毕,我们继续来扩充我们的知识面,今天我们从认识C++开始来带大家学习C++,我之前看过一套书叫做《明朝那些事儿》,把本来枯燥的历史讲的生动

    2024年02月08日
    浏览(30)
  • 【C++深入浅出】初识C++上篇(关键字,命名空间,输入输出,缺省参数,函数重载)

         目录 一. 前言 二. 什么是C++ 三. C++初探 四. 命名空间 4.1 为什么要引入命名空间 4.2 命名空间的定义 4.3 命名空间使用 五. C++的输入输出 六. 缺省参数 6.1 缺省参数的概念 6.2 缺省参数的分类 七. 函数重载  7.1 函数重载的概念 7.2 函数重载的条件 7.3 C++支持函数重载

    2024年02月13日
    浏览(25)
  • C++ 基础知识笔记(一)变量和数据的输入输出

    C++的基础知识包括如下内容: 变量和数据的输入输出 数据类型和运算符 比较运算符和布尔类型 if-else 选择语句、多分支语句 switch 分支语句 逻辑运算符 for 循环 for 循环进阶 数组 数组进阶 while 循环 格式化输入输出 浮点数和数据类型转换 字符串和字符数组 string 类型的字符

    2024年02月09日
    浏览(22)
  • C++入门:命名空间与输入输出

    目录 1.命名空间 1.1 命名空间的定义 1.2 命名空间的使用 1.3 标准命名空间 std 2.C++输入输出 我们在初学C++时,经常会在代码开头看到这样的一行代码: 这行代码到底什么意思呢?我们学完命名空间就可以理解了。 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些

    2024年02月11日
    浏览(21)
  • 【C++入门系列】——命名空间和输入输出

    📚lovewold少个r博客主页     ⚠️ 本文重点 : c++入门第一个程序和基本知识讲解 😄 每日一言 :忙,不会死,人只有越忙越活,流水不腐,户枢不蠹。 ​作者主页 前言 谈谈我个人对语言和职业的看法 C++的历史发展 C++第一个程序 命名空间 定义命名空间 使用此命名空间 命

    2024年02月05日
    浏览(23)
  • 【C++起飞之路】初级——命名空间、输入输出流

    为了解决合作开发时的命名冲突问题,C++ 引入了命名空间(Namespace) 当我们编写代码时,可能会产生一些命名冲突,为了解决这一冲突引出了命名空间的概念 命名冲突的产生主要包括两个方面原因: 1、与库函数名冲突 2、工程中的冲突(比如多人共同完成一个项目时,写了

    2024年02月03日
    浏览(26)
  • 【C++杂货铺】C++介绍、命名空间、输入输出

     C语言是 结构化 和 模块化 的语言,适合处理 较小规模 的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代,计算机界提出了 OOP (object oriented programming: 面向对象 )思想,支持面向对象的程序设计语言应

    2024年02月16日
    浏览(23)
  • 【C++初阶】C++入门——C++介绍、命名空间、输入输出

     C语言是 结构化 和 模块化 的语言,适合处理 较小规模 的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代,计算机界提出了 OOP (object oriented programming: 面向对象 )思想,支持面向对象的程序设计语言应

    2024年02月11日
    浏览(24)
  • 【C++】:C++关键字,命名空间,输入&输出,缺省参数

    C++总计63个 ,C语言32个。 ps:下面我们只是看一下C++有多少,不对进行具体的讲解。在以后的学习中会会了解的更深。 在C语言的语法中,有时候会遇到这样的情况: 我们的本意是创建一个全局的 rand 变量,再进行输出。那为什么会报错呢? 原因:

    2024年04月27日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包