C++初阶学习第一弹——C++入门(上)

前言:

很高兴,从今天开始,我们就要步入C++的学习了,在这之前我们已经对C语言有了不错的了解,对数据结构也有了一些自己的认识,今天开始,我们就进入这个新的主题的学习------C++

目录

一、C++的发展即其特点

二、C++的基本语法

1、C++的关键字

2、命名空间

[2.1 命名空间的定义](#2.1 命名空间的定义)

[2.1 命名空间的使用](#2.1 命名空间的使用)

3、C++的输入输出

4、缺省参数

[4.1 什么是缺省参数](#4.1 什么是缺省参数)

[4.2 缺省参数的几种类型](#4.2 缺省参数的几种类型)

三、总结


一、C++的发展即其特点

C++是贝尔实验室在1979年开发出来的,它是在C语言的基础上开发出来的一门新的计算机语言,所以它有着C语言的一些特点,同时又有许多创新的地方,简单来说,C语言是面向过程的,而C++则是面向对象的,C++的实现在很多时候是要比C语言方便很多的

今天,我们就先来浅浅学习一下C++的一些基本用法

二、C++的基本语法

1、C++的关键字

C++是在C语言的基础上发展而来的,它是完全兼容C语言的 ,也就是说,你在一个cpp文件里,写一个C语言的代码还是可以正常运行的,但作为一个更先进的语言它又有了一些创新,下面我们给出它的关键字,暂时先不做讲解,等以后遇到再慢慢学习

从这张表格中我们就可以看出,C语言的关键字在C++中还是全部适用的

2、命名空间

C语言的使用上还有一个很大的不利,就是命名空间上,因为它命名的变量一般都是全局变量,就让许多方面变的极为不利

比如 ,当处理一个大型项目时,我们一般会让多个小组分工实现,每个小组写一段代码,然后再整合到一起,但这就容易导致一个现象出现,那就是命名冲突,可能不同的小组对不同的变量命名了同一个名,然后导致程序不能运行,还要后期继续去改进,这样就很麻烦,所以我们C++就有了命名空间这个概念出现,用来解决这个问题

2.1 命名空间的定义

定义命名空间需要用到一个关键字:namespace

具体做法:在namespace后面加上{ },然后在里面定义变量

cpp 复制代码
namespace zwt   //后面这个可以自定义名字,随便即可
{
	//命名空间中可以定义变量/函数/类型
	int a=0;
    int b=1;

	int Add(int x, int y)
	{
		return x + y;
	}

	struct Stack
	{
		int* c;
		int capacity;
	};
}

比较有趣的是,我们可以同时命名多个相同名字的空间,最后这些命名空间中的对象会进行整合,相当于命名在同一个空间中

2.1 命名空间的使用

命名空间的使用有三种方法:

1、加命名空间名称及作用域限定符

cpp 复制代码
int main()
{
	printf("%d", zwt::a);
	return 0;
}


2、使用 using 将命名空间中某个成员引入

cpp 复制代码
//2、使用using将命名空间中某个成员引入
using zwt::a;
int main()
{
	printf("%d\n", a);
	printf("%d\n", zwt::b);
	return 0;
}

3、使用using namespace命名空间名称 引入

cpp 复制代码
//3、使用using namespace 命名空间名称 引入
using namespace zwt;
int main()
{
	printf("%d\n", a);
	printf("%d\n", b);
	return 0;
}

3、C++的输入输出

C++的输入输出与C语言也有很大不同,C++的输入输出函数是定义在std命名空间中的,为了方便,我们一般会在用之前就用using进行展开,下面我们直接通过一段代码来看

cpp 复制代码
#include<iostream>   //C++输入输出所需的头文件
using namespace std;
int main()
{
	int a = 0;
	//C++输入函数为cin
	cin >> a;
	//C++输出函数cout
	cout << a << endl;

	return 0;
}

运行结果:

4、缺省参数

4.1 什么是缺省参数

缺省参数就是在函数声明和定义的时候,直接给形参赋一定的值,然后在调用这个参数的时候,就可以不用传参或者传部分参数,比如:

cpp 复制代码
void Func(int a = 10, int b = 20)
{
	cout << a << endl;
	cout << b << endl;
}
int main()
{
	Func();
	Func(1, 2);
	return 0;
}

代码中的这两种调用方式都是没问题的,只是输出结果不同,下面我们就来详细讲解一下这几种调用的区别

4.2 缺省参数的几种类型

全缺省参数

cpp 复制代码
void Func(int a = 10, int b = 20)
{
	cout << a << endl;
	cout << b << endl;
}
int main()
{
	Func();
	return 0;
}


半缺省参数

cpp 复制代码
void Func(int a = 10, int b = 20)
{
	cout << a << endl;
	cout << b << endl;
}
int main()
{
	Func(1,2);
	Func(1);
	return 0;
}

缺省参数注意事项:

1、缺省参数必须依次给出,不能间隔给出

2、缺省参数声明和定义不能分开,尤其是不能分开在两个文件中

3、缺省参数必须是常量或者全局变量

4、缺省参数在C语言中不支持

三、总结

以上就是我们对C++的初步讲解,讲解内容并不多,意在让大家慢慢接受理解,接下来我们就会慢慢扩大知识面,在以后会有更多有趣的知识点等着我们去学习,继续前进吧

创作不易,还请各位大佬点赞支持一下!!!

相关推荐
蜀黍@猿11 分钟前
【C++ 基础】从C到C++有哪些变化
c++
Am心若依旧40912 分钟前
[c++11(二)]Lambda表达式和Function包装器及bind函数
开发语言·c++
明月看潮生15 分钟前
青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试
开发语言·青少年编程·单元测试·编程与数学·goweb
zh路西法22 分钟前
【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(一):从电梯出发的状态模式State Pattern
c++·决策树·状态模式
大G哥24 分钟前
java提高正则处理效率
java·开发语言
VBA633734 分钟前
VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL
开发语言
轩辰~36 分钟前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
小_太_阳1 小时前
Scala_【1】概述
开发语言·后端·scala·intellij-idea
向宇it1 小时前
【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理
开发语言·unity·c#·编辑器·游戏引擎
lxyzcm1 小时前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23