C++练级之路——C++入门

本文介绍了C++中的命名空间解决命名冲突,输入输出使用cin/cout,缺省参数、函数重载、引用、内联函数、auto关键字、范围for循环和nullptr的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、命名空间

2、C++的输入&输出

3、缺省参数

缺省参数的定义

  缺省参数的分类

4、函数重载

重载的概念

C++支持函数重载的原理——名字修饰

5、引用

引用的概念

引用特性

常引用

引用的使用场景

引用和指针的区别

​编辑

6、内联函数

7、auto关键字(C++11)

8、基于范围的for循环(C++11)

9. 指针空值nullptr(C++11)


1、命名空间

        在C/C++中会出现大量的变量,函数,起名字是一个很大的问题,为了防止命名重复,就出现了命名空间的概念,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突和名字污染

#include <stdio.h>
#include <stdlib.h>
int rand = 10;
// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决
int main()
{
 printf("%d\n", rand);
return 0;
}
// 编译后报错:error C2365: “rand”: 重定义;以前的定义是“函数”

   命名空间内可以定义变量,函数,也可以嵌套定义,使用命名空间有三种方式:

1.直接展开命名空间

using namespace ljp

        ljp是命名空间的名字,自己可以随便起,要是有相同名字的命名空间,会合并成一个空间

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

using ljp::a 

        例如我引入的是一个int 类型的变量a,::是作用域限定符,

3.加命名空间和作用域限定符

 ljp::a

        这样就可以直接使用a变量了

2、C++的输入&输出

        C++定义了新的输入和输出,输入是cin,输出是cout,但是使用时要展开C++官方的命名空间

using namespace std ,例如:

#include<iostream>
using namespace std;
int main()
{
	int a = 10;
	cin >> a;
	cout << a << endl;
	cout << "hello world" << endl;
	return 0;
}

1c141601cdd140f2a59c91cd78003b3a.png

         使用cin和cout输入输出非常方便,不需要控制格式了,cin和cout可以自动识别类型,关于更加复杂的知识我们后面了解,这里简单使用一下输入输出。

        std命名空间的使用惯例:

1.在日常练习中建议直接展开using namespace std,这样比较方便。

2.using namespace std展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模大,就很容易出现。所以建议在项目开发中使用,像std::cout这样使用时指定命名空间 + using std::cout展开常用的库对象/类型等方式。

3、缺省参数

缺省参数的定义

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

565e7333cf1c44dd83c0a13a071cfe15.png

        第一个fun()函数,没有指定实参的值,则默认使用形参的缺省值,第二个fun()函数,实参是20,那么就用实参的值。

  缺省参数的分类

全缺省参数

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

 半缺省参数

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

注意:

1.半缺省参数只能从右往左依次定义,不能间隔着给;

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值