【C++】C++入门篇,初识C++----第一个C++结构,C++关键字,命名空间,C++的输入输出,缺省参数【图文详解】

欢迎来CILMY23的博客喔,本篇为【C++】C++入门篇,初识C++----第一个C++结构,命名空间,C++的输入输出,缺省参数【图文详解】,深刻理解命名空间,带大家入门C++,感谢观看,支持的可以给个一键三连,点赞关注+收藏。 

 前言

本期系列为新系列【C++】,本篇将带大家从C++发展史开始,认识我们的C++。

目录

1.C++的发展史

1.1 什么是C++?

1.2 C++的发展史 

 2.第一个C++结构 

3.C++关键字

4.命名空间

4.1命名空间的来源

 4.2命名空间的定义

 4.3第一个C++结构的解释

4.4命名空间的三种使用方式

5.C++的输入输出

6.缺省参数

 6.1什么是缺省参数?

6.2缺省参数的分类 

6.3缺省参数总结 


1.C++的发展史

1.1 什么是C++?

 C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的 程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机 界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言 应运而生。
       1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一 种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。 

C++呢兼容C语言,我们C语言的文件是可以在C++上运行的。

1.2 C++的发展史 

 看看百度百科就完事了

C++_百度百科 (baidu.com)

 2.第一个C++结构 

#include<iostream>
using namespace std;

int main()
{
	cout << "hello world" << endl;
}

看不懂没关系,后面学完命名空间我们就能大致了解这个结构的意思了,我们可以先从简单的地方入手,比如关键字。

3.C++关键字

该表格来自:C++ 基本语法 | 菜鸟教程 (runoob.com) 

C++一共有63个关键字,而C语言有32个关键字

4.命名空间

4.1命名空间的来源

在过去C语言的学习中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。

就比如以下这两段代码:

#include<stdio.h>
int rand = 10;

int main()
{
	printf("%d ", rand);
}

结果如下: 

 

我们可以看到屏幕上打印出了10,但是当我们引入了stdlib头文件后,又发生了什么情况呢? 

#include<stdio.h>
#include<stdlib.h>

int rand = 10;

int main()
{
	printf("%d ", rand);
}

 结果如下:

 rand是什么?是一个随机数函数(http://t.csdnimg.cn/FVt6K,六随机数的生成),那么此刻就犯了C语言的麻烦点,命名冲突,那有没有什么办法可以解决这个问题呢,C++提供了一种语法,命名空间。

使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

 4.2命名空间的定义

那命名空间是如何使用的呢? 

#include<stdio.h>
#include<stdlib.h>

namespace CILMY
{
	int rand = 10;
}

int main()
{
	printf("%d ", CILMY::rand);
}

命名空间的使用类似结构体,后面跟上一个 {},这里没有分号,那这段代码如何解释呢? 

如果我们想用命名空间中定义的东西,就必须用到域作用限定符::, 那么在C++当中和C语言当中可不一样,C语言当中我们有全局域和局部域,这两个域会影响生命周期和访问,而命名空间域不影响生命周期,只会影响访问,包括后面也会学习类域。

命名空间可以定义函数,定义结构体

namespace CILMY
{
	int rand = 10;

	int Add()
	{
		//...
	}

	struct Node
	{
		int value;
		//...
	};
}

int main()
{
	printf("%d ", CILMY::rand);
	printf("%d", CILMY::Add());
	struct CILMY::Node phead;
}

 4.3第一个C++结构的解释

4.4命名空间的三种使用方式

 一、展开空间域:

#include<iostream>
using namespace std;

int main()
{
	cout << "hello world" << endl;
}

二、不展开空间域

#include<iostream>

int main()
{
	std::cout << "hello world" << std::endl;
}

 三、展开部分域

#include<iostream>
using std::cout;
using std::endl;

int main()
{
	cout << "hello world" << endl;
}

5.C++的输入输出

#include<iostream>
using namespace std;

int main()
{
	int i = 0;
	cin >> i;
	cout << "hello world" <<'\n'<<i << endl;
}

C++中的输入形式是cin 搭配>>,然后就可以对i进行输入,而输出则是利用cout来进行,endl的作用也类似'\n',换行的一个作用。 

不同的点在于,C++能够自动识别类型,不像C语言当中,我们想要输入还要取地址,输入输出还需要用对应的格式符。

6.缺省参数

 6.1什么是缺省参数?

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

看以下例子就明白了

#include<iostream>
using namespace std;

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


int main()
{
	Func(1);
	Func();
}

如果我们不给函数传参,那么a就会把十打印出来,我们把int a = 10,这样就是给了一个缺省值,或者是默认值。 

6.2缺省参数的分类 

 全缺省参数:

#include<iostream>
using namespace std;

void Func1(int a = 10)
{
	cout << a << endl;
}

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

int main()
{
	Func2(1, 2, 3);
	Func2(1, 2);
	Func2(1);
	Func2();
}

我们把Func2这样的叫做全缺省参数 

void Func3(int a, int b, int c = 30)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

int main()
{
	Func3(1, 2);
	Func3(1, 2, 3);
}

而像这种我们把它称作半缺省参数,注意参数的对应,是从右向左对应的。

 

6.3缺省参数总结 

1. 半缺省参数必须从右往左依次来给出,不能间隔着给

2. 缺省参数不能在函数声明和定义中同时出现 

3. 缺省值必须是常量或者全局变量
4. C语言不支持(编译器不支持)

 感谢各位同伴的支持,本期C++入门篇就讲解到这啦,如果你觉得写的不错的话,可以给个一键三连,点赞关注+收藏,若有不足,欢迎各位在评论区讨论。   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值