初识c++:入门基础

打字不易,留个赞再走吧~~
在这里插入图片描述

C++兼容C语⾔绝⼤多数的语法,所以C语⾔实现的hello world依旧可以运⾏,C++中需要把定义⽂件
代码后缀改为.cpp

一.第一个c++程序

在这里插入图片描述

做好准备我们来写一个Hello world
在这里插入图片描述

也许你会看不懂,下面 来讲解。

二.命名空间 namespace

命名空间的价值

在C/C++中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全
局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名
冲突或名字污染,namespace关键字的出现就是针对这种问题的

在以前写c的程序时我们会遇到这样的问题:

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
int rand = 10;
int main()
{
// 编译报错:error C2365: “rand”: 重定义;以前的定义是“函数”
printf("%d\n", rand);
return 0;
}

因为我们在标准库中有了rand()函数,所以命名冲突,不能使用rand变量来赋值。

在这里插入图片描述

我们 可以用namespace义一个命名空间,里面可以写多个方法(函数),变量,结构体,这时候我们引用这些东西时候 要指名命名空间名,然后再加上引用类型,中间要用::隔开。如图我们在打印way库中的方法Add1()和Add2()时候都用::分开。因为cont(输出函数),endl(换行符),都是在命名空间std中,它们都在中相当于c语言中的<stdio.h>所以我们在这里加上std::cout或者是std::endl。至于<<是什么意思以后再做讨论

我们也可以展开命名空间这样就不用反复调用命名空间,直接调用其方法。

方法为using namespace 命名空间的名称

上面优化后代码为
在这里插入图片描述

三.C++输⼊&输出

在了解c++输入输出格式之前我们要先了解这些:

是 Input Output Stream 的缩写,是标准的输⼊、输出流库,定义了标准的输⼊、输
出对象。
• std::cin 是 istream 类的对象,它主要⾯向窄字符(narrow characters (of type char))的标准输
⼊流。
• std::cout 是 ostream 类的对象,它主要⾯向窄字符的标准输出流。
• std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换⾏字符加刷新缓冲区。
• <<是流插⼊运算符,>>是流提取运算符。(C语⾔还⽤这两个运算符做位运算左移/右移)
• 使⽤C++输⼊输出更⽅便,不需要像printf/scanf输⼊输出时那样,需要⼿动指定格式,C++的输⼊
输出可以⾃动识别变量类型(本质是通过函数重载实现的,这个以后会讲到),其实最重要的是
C++的流能更好的⽀持⾃定义类型对象的输⼊输出。
• IO流涉及类和对象,运算符重载、继承等很多⾯向对象的知识,这些知识我们还没有讲解,所以这
⾥我们只能简单认识⼀下C++ IO流的⽤法,后⾯我们会有专⻔的⼀个章节来细节IO流库。
• cout/cin/endl等都属于C++标准库,C++标准库都放在⼀个叫std(standard)的命名空间中,所以要
通过命名空间的使⽤⽅式去⽤他们。
• ⼀般⽇常练习中我们可以using namespace std,实际项⽬开发中不建议using namespace std。
• 这⾥我们没有包含<stdio.h>,也可以使⽤printf和scanf,在包含间接包含了。vs系列
编译器是这样的,其他编译器可能会报错。



	int a;
	int b;
	char c;
	

cin >> a;
cin >> b >> c;
cout << a << endl;
cout <<b<<" "<<c<< endl;


上面代码cin就相当于scanf函数,和scanf函数不同的是他不需要指定占位符,你定义什么面数据,就可以输出什么数据。它会自动识别,换行符,空格,来识别你的数据。
当然它也在std标准库里,不要忘记

#include<iostream>
using namespace std;

四.缺省参数

缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时,如果没有指定实参
则采⽤该形参的缺省值,否则使⽤指定的实参,缺省参数分为全缺省和半缺省参数。(有些地⽅把
缺省参数也叫默认参数)
• 全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左
依次连续缺省,不能间隔跳跃给缺省值。
• 带缺省参数的函数调⽤,C++规定必须从左到右依次给实参,不能跳跃给实参。
• 函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省
值。

举个列子
全缺省:

#include<iostream>
using namespace std;

namespace Way {

	int Add1(int a = 1, int b = 2) {

		return a + b;


	}
}
int  main()


{


	
	
	cout << Way::Add1() << endl;



}

这就是刚刚我们写的Add1,此时我们不传参,在方法定义中赋值,这就叫缺省参数。
结果为:在这里插入图片描述

半缺省我们赋值一个另一个用缺省,注意只能从左边缺省不能从右边
还是刚刚列子,稍微修改一下

namespace Way {

	int Add1(int a  int b = 2) {

		return a + b;


	}
}
int  main()


{


	
	cout << Way::Add1(3) << endl;



}

这时候传参a为3,加上缺省参数b为2,期望结果为5.

在这里插入图片描述

这次博客我们写了第一个c++程序,了解了命名空间 namespace
C++输⼊&输出。最后知道了缺省参数,这样看来c++确实更加便捷,以后内容更精彩

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值