一:关键字

  在C语言中,我们已经学习过了很多的关键字,例如:static,struct等,下面展现一下C++中的一些关键字。

  

二:命名空间

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

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

    1. 普通的命名空间 :

  

 namespace N1 // N1为命名空间的名称
{
// 命名空间中的内容,既可以定义变量,也可以定义函数
int a;
int Add(int left, int right)
{
return left + right;
}
}

    2. 命名空间可以嵌套

 namespace N2
{
int a;
int b;
int Add(int left, int right)
{
return left + right;
} namespace N3
{
int c;
int d;
int Sub(int left, int right)
{
return left - right;
}
}
}

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

 namespace N1 // N1为命名空间的名称
{
// 命名空间中的内容,既可以定义变量,也可以定义函数
int a;
int Add(int left, int right)
{
return left + right;
}
}
namespace N1
{
int Mul(int left, int right)
{
return left * right;
}
}

注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中

  命名空间的使用:  

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

  • 加命名空间名称及作用域限定符
 int main()
{  
printf("%d\n", N::a);  
return ;    
}
  • 使用using将命名空间中成员引入
 using N::b;
int main()
{  
printf("%d\n", N::a);  
printf("%d\n", b);  
return ;    
}
  • 使用using namespace 命名空间名称引入
 using namespce N;
int main()
{  
printf("%d\n", N::a);  
printf("%d\n", b);  
Add(, );  
return ;    
}

三:输入/输出

  1. 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空 间。
  注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可, 后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,

  规定C++头文件不带.h;旧 编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用<iostream>+std的方式。
  2. 使用C++输入输出更方便,不需增加数据格式控制,比如:整形--%d,字符--%c

 #include <iostream>
using namespace std; int main()
{
int a;
double b;
char c; cin>>a;
cin>>b>>c; cout<<a<<endl;
cout<<b<<" "<<c<<endl; return ;
}

四:缺省参数

  1.概念:(简单的来说就是备胎)

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

 void TestFunc(int a = )
{
cout<<a<<endl;
} int main()
{
TestFunc();     // 没有传参时,使用参数的默认值
TestFunc();   // 传参时,使用指定的实参
}

  2.缺省参数的分类

  

  • 全缺省参数

    传入的参数有多个,且参数都会指定一个默认值。

  • 半缺省参数

    传入的参数有多个,但参数不一定都有默认值。

    这里需要注意一下:

        1.半省参数的默认值必须从右往左一次给出,不能间隔

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

五:函数的重载

    1.是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题(这也是C++与C语言的最重要区别)

    详细请看C++中函数 重载详解https://www.cnblogs.com/cuckoo-/p/10789222.html

     2.extern "C"

      如果你在C++的工程中,需要将某些函数按照C的风格来编译。则需要在函数前加上 extern "C",在告诉编译器,按照C风格的编译方式编译。

 extern "C" int Add(int left, int right);

 int main() {
Add(,);
return ;
}

链接时报错:error LNK2019: 无法解析的外部符号_Add,该符号在函数 _main 中被引用

C++入门基础知识(一)的更多相关文章

  1. USB入门基础知识(转)

    源:USB入门基础知识 相关名词: 主机(Host) 设备(Device) 接口(Interface) 管道(Pipe) 管道是主机与设备端点数据传输的连接通道,代表了主机的数据缓冲区与设备端点之间交 ...

  2. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  3. React Native 入门基础知识总结

    中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...

  4. Greenplum入门——基础知识、安装、常用函数

    Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709    版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...

  5. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  6. React入门---基础知识-大纲-1

    -----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...

  7. PHP基础入门(二)---入门基础知识必备

    前言 在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...

  8. CodeMix入门基础知识

    CodeMix在线订购年终抄底促销!火爆开抢>> CodeMix入门 CodeMix是一个Eclipse插件,可以直接从Eclipse访问VS Code和为Code OSS构建的附加扩展的 ...

  9. Vue 2.0入门基础知识之全局API

    3.全局API 3-1. Vue.directive 自定义指令 Vue.directive用于自定义全局的指令 实例如下: <body> <div id="app&quo ...

  10. [转] linux操作系统下c语言编程入门--基础知识

    点击阅读原文 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 1. 源程序编译        2. Makefile的编写        3. 程序库 ...

随机推荐

  1. python 格式化输出用户名/密码

    格式化输出用户名/密码 内容来自网络 def get_account(num): accounts = [] for index in range(1, num+1): accounts.append ...

  2. 性能分析 | JVM发生内存溢出的8种原因及解决办法

    推荐阅读:史上最详细JVM与性能优化知识点综合整理 1.Java 堆空间 2.GC 开销超过限制 3.请求的数组大小超过虚拟机限制 4.Perm gen 空间 5.Metaspace 6.无法新建本机 ...

  3. SRCNN代码分析

    代码是作者页面上下载的matlab版.香港中文大学汤晓鸥教授.Learning a Deep Convolutional Network for Image Super-Resolution. htt ...

  4. ps在psd格式图片里面切图流程

    第一. 第二. xx的地方自己重新命名 第三. 第四.

  5. 《计算机系统要素》第四章 类汇编语言 Hack

    这章通过学习书中自己设计的Hack语言的使用,弄懂汇编语言的工作原理. 汇编语言最接近底层了,因为每个指令对应一个二进制编码. 当这些指令都变成...0101011100101...的形式后,内存Me ...

  6. requestLibrary API

    requestLibrary API Keyword Arguments Documentation Create Ntlm Session alias, url, auth, headers={}, ...

  7. Vuex模块:开启命名空间

    模块开启命名空间后,享有独自的命名空间. { "模块1":{ state:{}, getters:{}, mutations:{}, actions:{} }, "模块2 ...

  8. 20190925 - macOS 的包管理工具

    众所周知,macOS 的包管理工具有 MacPorts 和 Homebrew,后者似乎更受欢迎,但前者但包数量更多. 喜欢手冲咖啡,看到 brew 这个词有好感,但可能部分由于网络的问题,部分因为 b ...

  9. SLC cache功能

    由于TLC需要多次编程,且未全部编程时wordLine处于不稳定状态,所以一般都会划出一部分区域作为SLC cache使用 SLC cache主要功能是,SSD接收到写命令后,先将数据写入SLC ca ...

  10. idea标签页多行显示+设置标签页上限

    idea标签页多行显示+设置标签页上限 Setting--Editor--General--Editor Tabs