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

网站建设行业新闻地推是什么

网站建设行业新闻,地推是什么,wordpress主题更新无法创建目录,惠州网站建设行业0.前言 C是一门非常好的编程语言,但可能在学习C的过程中会遇到很多困难。人们常说 “一个人走得很快,一群人会走的更远”, 所以就让我们一起攻坚克难,一起征服C吧!从本章开始,我们将开始C的基础学习&#x…

0.前言

C++是一门非常好的编程语言,但可能在学习C++的过程中会遇到很多困难。人们常说 “一个人走得很快,一群人会走的更远”, 所以就让我们一起攻坚克难,一起征服C++吧!从本章开始,我们将开始C++的基础学习!一起加油吧!🎠🎠🎠

1.什么是C++

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。
1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

2.C++关键字

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

asmdoifreturntrycontinue
autodoubleinlineshorttypedeffor
booldynamic_castintsignedtypeidpublic
breakelselongsizeoftypenamethrow
caseenummutablestaticunionwchar_t
catchexplicitnamespacestatic_castunsigneddefault
charexportnewstructusingfriend
classexternoperatorswitchvirtualregister
constfalseprivatetemplatevoidtrue
const_castfloatprotectedthisvolatilewhile
deletegotoreinterpret_cast

3.命名空间

①像下面这样,我们在命名全局变量的时候并不知道C语言库里面的函数,这时候就会发生命名冲突②还有当我们在公司分模块写代码的时候,我们并不知道别人是怎样命名函数、全局变量的,也可能引发命名冲突。

一个栗子:

#include<stdio.h>
#include<stdlib.h>
int rand = 10;
int main()
{printf("%d\n", rand);return 0;
}

代码运行的结果:
在这里插入图片描述

C语言不能很好的解决命名冲突的问题,而在C++中使用了命名空间对标识符的名称进行本地化,以避免命名冲突或名字污染;而定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字(注意不需要在{}后面加逗号),然后接一对{}{}中为命名空间的成员,把变量封装在命名空间域中,防止引起命名冲突。

3.1命名空间的定义

命名空间形式如下:

namespace phh
{int rand = 1;
}

现在我们已经命名好了,那么该怎么访问命名空间里面的变量呢?这时候我们要使用::域作用限定符,左边空白表示全局域去访问全局变量,左边是命名空间的名字则回去命名空间域访问命名空间的成员变量。

eg:

#include<stdio.h>int a = 1;
//namespace是C++的关键字,后面跟的是命名空间的名字
//然后加一对{}括号即可(注意不需要在{}加逗号)
//把全局变量封装在命名空间域中,防止引起命名冲突
namespace phh
{int a = 2;
}
//::域作用限定符
//左边空白,会去全局域访问
int main()
{int a = 0;printf("%d\n", a);printf("%d\n", ::a);printf("%d\n", phh::a);return 0;
}

代码运行的结果如下:
在这里插入图片描述
这时候我们就可以用C++解决与库里面命名冲突问题了

#include<stdio.h>
#include<stdlib.h>
namespace phh
{int rand = 1;
}
int main()
{printf("%d\n", phh::rand);printf("%p\n", rand);//库里面的rand是函数,函数名为地址return 0;
}

代码运行的结果如下:
在这里插入图片描述

3.2命名空间的特性

1.正常的命名空间定义–可以定义变量/函数/类型

namespace phh
{int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}

2.命名空间可以嵌套使用

#include<stdio.h>
namespace N1
{int a = 0;int b = 0;int Add(int left, int right){return left + right;}namespace N2{int a = 1;int c = 0;int d = 0;int Sub(int left, int right){return left - right;}}
}
int main()
{printf("%d\n", N1::a);//嵌套的命名空间还可以使用同一个变量名printf("%d\n", N1::N2::a);//也可以把函数封装在命名空间域中,然后通过指定空间域进行访问printf("%d\n", N1::Add(1, 2));return 0;
}

代码运行的结果如下:
在这里插入图片描述

3.同一个工程中可以存在多个相同的名称,编译器最后会合并成同一个命名空间

//Queue.h
namespace N1
{int x = 1;
}
//Stack.h
namespace N1
{int y = 2;
}
#include<stdlib.h>
#include"Queue.h"
#include"Stack.h"
int main()
{//printf("%d\n", N1::x);printf("%d\n", N1::y);return 0;
}

代码运行的结果如下:
在这里插入图片描述

注意: 如果Queue.hStack.hN1中使用了同一个变量名,会发生命名冲突,这时候可以使用命名空间嵌套或定义不同命名空间的名字。

3.3命名空间的使用

命名空间使用三种方式:

①加命名空间的名称及作用限定符

#include<stdio.h>
int a = 1;
namespace phh
{int a = 2;
}int main()
{int a = 0;printf("%d\n", a);printf("%d\n", ::a);printf("%d\n", phh::a);return 0;
}

这种方法,需要对命名空间域进行多次访问,会显得代码冗余;建议在访问次数少的时候使用。

②使用using namespace 命名空间名称引入

#include<iostream>
namespace phh
{int a = 1;int b = 1;
}
using namespace phh;
//相当于把命名空间中的成员变量放到了全局域
int main()
{int a = 0;printf("%d\n", a);printf("%d\n", ::a);return 0;
}

代码运行的结果如下:
在这里插入图片描述

这种方法,把命名空间域中的变量放到全局域中可能会引起命名冲突,一般建议在日常练习中使用。

③使用using将命名空间中的某个成员引入

#include<stdio.h>
int b = 0;
namespace phh
{int a = 1;int b = 1;
}
using phh::a;
int main()
{printf("%d\n", a);return 0;
}

代码运行结果如下:
在这里插入图片描述

不建议把命名空间的里变量全部展开,存在风险,可以指定成员访问或把常用的展开,推荐使用这种方法。

4.C++输入&输出

C++学习须知:

1.std是C++标准库的命名空间命名,C++标准库的定义实现都放在这个命名空间中
2.cout是标准输出对象(控制台),cin是标准输入对象(键盘),endl是特殊的C++符号,相当于换行符\n
3.cout\cin\endl被定义在std(C++标准库的命名空间)中,需要包含头文件#include<iostream>需要按命名空间的使用方法才能使用
4.cout\cin可以自动识别变量类型,可以一次读取多个变量(也就是不用像C语言中printf\scanf那样指定变量的格式读取、输出多个变量)
5.在以.cpp为后缀的文件中,C语言、C++混用的时候,使用printf/scanfcout\cin效率高一点,因为C++要兼容C语言,所以C++、C语言有各自不同的缓冲区,所以在输入输出前需要检查C语言缓冲区是否有东西,会影响效率。

一个栗子:

//C++的输入和输出
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{int x = 0;double b = 0;cin >> x>>b;cout << x <<" "<< b << endl;return 0;
}

代码运行的结果如下:
在这里插入图片描述
std命名空间的使用惯例:

1.在日常练习中,建议直接using namespace即可,这样很方便。
2using namespace std展开,标准库就全部暴露出来,如果我们定义的变量跟库里面的类型/对象/函数,就存在冲突问题,所以在项目开发中建议展开某个库里面的成员变量,如需要使用cout,就建议using std::cout

总结

本章我们一起学习了C++的一些细则,如命名空间、输入输出,了解了C++与C语言的不同之处,内容不多,但很重要哦!希望对你们了解C++有些许帮助!感谢大家阅读,如有不对,欢迎纠正!🎠🎠🎠

http://www.hkea.cn/news/399900/

相关文章:

  • 创业初期要建立公司的网站吗seo排名优化代理
  • 做网站全屏尺寸是多少钱站长工具查询系统
  • 做企业平台的网站有哪些手机网站制作教程
  • 免费行情的软件大全下载北京公司排名seo
  • 网站联系方式要素qq群推广链接
  • div css 网站模板免费的云服务器有哪些
  • 35互联做网站好吗网店运营工作内容
  • 网站建设模拟软件营销培训课程内容
  • 深圳建网站兴田德润专业2023年最新新闻简短摘抄
  • 学校网站怎么查询录取百度相册登录入口
  • 自助建设彩票网站网址查询工具
  • 怎么创建网页的快捷方式seo入门版
  • 互联网企业网站网络优化
  • 山东手工活外发加工网四川二级站seo整站优化排名
  • 行业门户网站开发百度竞价怎么做效果好
  • 适合前端做项目的网站百度网盘搜索
  • 下载网站怎么下载广州网站定制多少钱
  • 西安攻略旅游自由行怎么玩北京seo软件
  • 汉川网站建设sem代运营
  • 装酷网装修平台东莞seo外包
  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网
  • 网站建设seo 视频做网站哪个平台好
  • 旅行社网站建设方案论文百度seo公司