cpp入门基础-详细版(上)

本文介绍了C++语言中的一些关键特性,包括C++关键字,命名空间的概念和使用,C++的输入输出机制,缺省参数的定义,以及函数重载的概念和原理。通过实例阐述了如何避免命名冲突并有效地管理代码作用域。
摘要由CSDN通过智能技术生成

 前言

 景鹤-个人主页

其他专栏直达路径:《数据结构》  《练习》


相信大家都是已经学习了c语言,那么本篇文章就是在大家已经有的基础之上,对c++和c语言进行补充,从而达到对c++有一定了解~


目录

 前言

1. C++关键字

2. 命名空间

1)概念

2)使用

定义命名空间

使用命名空间

3. C++输入&输出

4. 缺省参数

5. 函数重载


1. C++关键字

C++总计63个关键字,C语言32个关键字。

以下是c++的关键字:

2. 命名空间

1)概念

 cpp和C语言的头文件不同

  • C语言的头文件一般用
#include<stdio.h>

  • 而cpp的头文件为
#include<iostream>


而在cpp的头文件之后还有
using namespace std;

也就是平常我们对于CPP都是这样写的:

#include<iostream>
using namespace std;

int main()
{
    return 0;
}

其中的using namespace std; 就是我们对命名空间的使用。


命名空间使用namespace来声明,std命名空间是C++中标准库类型对象的命名空间,命名空间实际上是一个作用域

  • 那么我们为什么要使用命名空间呢?他有什么作用?

首先,在cpp中存在着大量的类和函数、变量,这些变量、函数和类的名称将都存在于全局作用域中,这就存在着重名的问题,编译器不能对此进行清楚的辨析。

因此使用命名空间就是对标识符进行限定,规定他的作用范围。

减少命名冲突。

打个比方:就相当于这有一片田地(全局作用域),分属于不同的人(类、函数、变量),但是其中出现了两个名字一模一样的,都叫“张三”,这两块地根本分不清是谁的,只能给这两个张三加上一个限定域,村头的张三、村尾的张三。

而命名空间就是这个限定,明确标识符的作用域。

2)使用

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。

namesapce Queue{}

定义命名空间

1、命名空间中可以定义变量/函数/类型

2、命名空间可以嵌套

3、同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。

ps:一个工程中的test.h和上面test.cpp中两个命名空间会被合并成一个

使用命名空间

需要访问命名空间时,需要使用作用域空间访问符::

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

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

rintf("%d\n", N::a);

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

using N::b;
int main()
{
    printf("%d\n", N::a);
    printf("%d\n", b);
    return 0;    
}

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

​
using namespce N;
int main()
{
    printf("%d\n", N::a);
    printf("%d\n", b);
    Add(10, 20);
    return 0;    
}

​

3. C++输入&输出

  • 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件 以及按命名空间使用方法使用std
  • 使用cin和cout不需要考虑输入和输出的数据类型,自动识别变量类型。
  • 换行使用“endl”
include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}

4. 缺省参数

定义:缺省参数是声明或定义函数时为函数的参数指定一个缺省值。

           在调用该函数时,如果没有指定实参采用该形参的缺省值,否则使用指定的实参。

c++支持缺省参数,可以全缺省,也可以半缺省,当参数不只有一个时,缺省只能从最右缺省开始。

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

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

        如果声明与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该 用那个缺省值。

3. 缺省值必须是常量或者全局变量

4. C语言不支持(编译器不支持)

5. 函数重载

函数重载:是函数的一种特殊情况,

C++允许在同一作用域中声明几个功能类似同名函数

这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。

返回值不同,不能构成重载!

参数类型不同

// 1、参数类型不同
int Add(int left, int right)
{
 cout << "int Add(int left, int right)" << endl;
 return left + right;
}
double Add(double left, double right)
{
 cout << "double Add(double left, double right)" << endl;
 return left + right;
}

参数个数不同

// 2、参数个数不同
void f()
{
 cout << "f()" << endl;
}
void f(int a)
比特就业课
5.2 C++支持函数重载的原理--名字修饰(name Mangling)
为什么C++支持函数重载,而C语言不支持函数重载呢?
在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。
{
 cout << "f(int a)" << endl;
}

参数类型顺序不同

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

总结

本篇文章到此就结束啦~

希望能对大家有所帮助!

希望各位读者老爷能多多点赞收藏~~~

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
cpp-chromium是一个基于C++语言开发的开源项目,它是谷歌开发的著名的开源浏览器项目Chromium的C++本。 Chromium是一个旨在提供更快、更稳定、更安全的浏览体验的项目。它不仅仅是一个浏览器,更是一个完整的开源项目,包含了浏览器引擎、图形库、媒体框架、Javascript引擎等多个组件。这些组件都是用C++编写的,而cpp-chromium则是基于这些C++组件构建的。 cpp-chromium的主要目的是为开发者提供一个使用C++语言开发Web浏览器的基础框架。它可以帮助开发者快速构建出高性能、功能丰富的浏览器应用程序。通过使用cpp-chromium,开发者可以在底层控制浏览器的各个方面,例如窗口管理、UI控件、网页渲染、网络请求等等。同时,cpp-chromium也提供了丰富的API和工具,使其易于使用和扩展。 对于开发者而言,cpp-chromium有以下几个优势。首先,它是基于C++语言开发的,具有较高的性能和灵活性。其次,cpp-chromium基于Chromium项目,可以享受到Chromium社区的持续更新和改进。最后,cpp-chromium还提供了丰富的文档和示例代码,帮助开发者快速入门开发。 总结来说,cpp-chromium是一个基于C++语言开发的开源浏览器项目,旨在为开发者提供一个使用C++开发Web浏览器的基础框架。它具有高性能、灵活性和易用性等特点,可以帮助开发者快速构建高质量的浏览器应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值