当前位置: 首页 > news >正文

网站建设需求文件滨州j建设局网站投诉电话

网站建设需求文件,滨州j建设局网站投诉电话,thinkphp网站优化,建设银行福建分行招聘网站前言C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented …

前言

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的

程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机

界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言

应运而生。

1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一

种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而

产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的

程序设计,还可以进行面向对象的程序设计

从今天开始我们进入C++的学习,C++从四十年前诞生以来,也是不断的发展着,成为最广泛的编程语言之一。

命名空间

示例

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

我们在许多的C++程序中都会看到以下的代码,但是有人仔细研究过这是什么意思吗?

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;

原来这里的namespace就是命名空间的意思,std就是C++的标准库,C++标准库中所有的定义和实现都放在std这个命名空间里,那么命名空间到底是什么意思呢?

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

我们来探究一下,来看这段代码,我们定义了一个rand变量,但是在C语言的库中,在<stdlib.h>中有一个rand函数,造成了命名冲突,但是在C++中,提出了命名空间来解决这个问题。

命名空间定义

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

中即为命名空间的成员。

命名空间定义时有有三个特点:

1.命名空间的名字可以为任何的变量名,命名空间中可以定义变量,函数,类型。

// 1. 正常的命名空间定义
namespace tmt
{// 命名空间中可以定义变量/函数/类型int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}

2.命名空间可以嵌套使用,在N1内部也可以嵌套N2的命名空间。

//2. 命名空间可以嵌套
// test.cpp
namespace N1
{int a;int b;int Add(int left, int right){return left + right;}namespace N2{int c;int d;int Sub(int left, int right){return left - right;}}
}

3.当在一个工程中,有名称相同的命名空间,会将这些命名空间中的内容合并。

//3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
// ps:一个工程中的test.h和上面test.cpp中两个N1会被合并成一个
// test.h
namespace N1
{int Mul(int left, int right){return left * right;}
}

命名空间使用

我们学会了命名空间的定义之后,我们来探究一下命名空间是如何使用的吧

namespace tmt
{int a = 1;
}int main()
{printf("%d", a);return 0;
}

我们发现编译器并不认识这个a变量,这时因为a定义在tmt这个命名空间内部,有了自己的作用域,当我们要使用这个变量时,先得来操作这个命名空间。

下边我来介绍三种方式:

  1. 使用作用域限定符来操作

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

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

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

3.使用using将命名空间名称引入

using namespce tmt;
int main()
{printf("%d\n",a);return 0;    
}

注意事项:

  1. 虽然有三种方式来使用命名空间内的内容,但是在实际的工程中,我们不会选择第三种方式,因为设计命名空间的初衷就是要避免函数名相同造成冲突,但是当我们将整个命名空间引入时,就丧失了隔离的效果,所以在写工程时,尽量不去使用第三种方式。

  1. 在平时的练习中,我们就可以使用三种方式,使用第三种方式比较方便。

C++输入&输出

我们前边学习了C语言,C语言的输入输出必须引入库stdio,输出使用的是printf函数,叫做标准输出函数,而标准输入函数就是scanf函数。我们下来看一下C++是如何输入输出的:

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{cout<<"Hello world!!!"<<endl;return 0;
}

C++的标准输入输出要引用iostream流,这里就用到了前文介绍的命名空间,只有这样才能使用C++

标准库中的函数。

注意:

1. 使用cout标准输出对象(控制台)cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。

2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包<iostream>头文件中。

3. <<是流插入运算符,>>是流提取运算符

4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。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 0;
}

C语言中使用printf和scanf函数必须指定函数类型,但是使用C++的cout与cin不用指定函数类型,直接输入变量就好了。

// ps:关于cout和cin还有很多更复杂的用法,比如控制浮点数输出精度,控制整形输出进制格式等
等。因为C++兼容C语言的用法,这些又用得不是很多,我们这里就不展开学习了。后续如果有需要,我们再配合文档学习。

http://www.hyszgw.com/news/73028.html

相关文章:

  • 新手怎么优化网站石家庄优化哪家好
  • 企业网站快照更新在线设计软件网站
  • 公司网站空间域名建设网站设计 品牌设计
  • 东莞市公司网站建设平台站长工具排名查询
  • 网站快慢由什么决定学校网站建设的要点
  • 西安网站模板建站网页设计模板素材图书馆
  • 中国移动官方网站李宁网络营销策划方案
  • 成都优化网站关键词网站维护一般要几天
  • eclipse 网站开发学习青岛响应式网站建设
  • 创业网站模板电话外呼系统
  • 企业网站管理系统 才能湖南岚鸿wordpress 本地建站教程
  • 集团网站建设的要求彩票网站 建设
  • wordpress建网站教程如何学网站建设
  • 胶州网站建设公司广东涂料网站建设
  • 专业做域名的网站吗wordpress 访客插件
  • 济南大型网站建设个人邮箱注册申请
  • 国外h5网站模板seo公司服务
  • 一个网站需要哪些东西全球设计风向
  • 网站设计确认大气高端网站
  • 网站备案成功后怎么弄网页制作的公司哪家好
  • 长沙环路建设开发有限公司网站wordpress login插件
  • 做旅游项目用哪家网站好龙华公司网站建设
  • app与移动网站开发资料在网站上投放广告
  • 辽宁城乡住房建设厅网站打不开长沙口碑最好网站建设公司排行榜
  • 合肥网站推广公司怎样下载建设银行信用卡网站
  • 新余建站公司重庆最好的网站建设公司
  • 新乡手机网站建设公司wordpress mu
  • 找做网站签证9377将军
  • 宣城网站开发建立网站的链接结构有哪几种形式简述其各自的优缺点
  • 建站论坛系统做家政有专门的网站吗