<CPP学习>第一天 第一个CPP程序 hello word
由于我是计算机类嵌入式专业的大一学生,之前一直使用的是生万物的C语言,了解了其过程性语言的特性及其基础语法,在大一下学期期末阶段想自学一下C++,其实在开学初就买了一本C++ Primer,但由于各种原因没抽出空看,想借期末和暑假这一大段空余时间充分学习一下C++,这也是我写此电子笔记的初衷。
C++是由C语言发展而来,C代表的是过程性语言,C++在C语言的基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。C语言与C++区别不多赘述,为什么要用面向对象,那什么又是面向对象呢?虽然结构化编程的理念提高了程序的可读性,但是在编写大型程序时仍然面临着挑战,为了应付这种挑战,OOP(面向对象)提供了一种新方法。与强调过程性编程不同的是,OOP强调的是数据。
C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定的数据结构,类可以描述数据的基本特征,对象则是描述类的具体数据,通常,类规定了可使用哪些数据来表示对象以及可以对数据进行那些操作。
接下来编写我的第一个CPP程序:
#include<iostream>
int main()
{
using namespace std;
cout << "Hello";
cout << endl;
cout << "world!";
return ;
}
如果程序要使用C++的输入或输出工具,则需要如下这行代码。
#include<iostream>
使用了#include编译指令,该编译指令导致预处理器将iostream文件的内容添加到程序中,这是一种典型的预处理器操作:在源代码被编译前,替换或添加文本。和C语言一样,同样是需要调用头文件,C语言中的输入输出头文件是<stdio.h>,C语言的传统是头文件使用扩展名.h,将其作为一种通过名称标示文件类型的简单方式,但在C++中用法变了,对老式C的头文件保留了扩展名h,仍然可以使用,但C++的头文件则没有扩展名。有些C转换为C++的头文件,这些文件被重新命名,去掉了扩展名h,并在文件名称前加上了前缀c,表示来自c语言。例如C++版本的math.h为cmath。
名称空间
using namespace std;
如果使用iostream,而不是iostream.h,则应该使用名称空间编译指令来使iostream中的定义对程序可用。
using编译指令。这章没有细讲,但是我将它这样理解。当你编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,但是有一个潜在的问题,可能使用两个封装好的产品时候,他们都包含一个名为out()的函数。这样使用out()函数时,编译器不知道你使用的是哪个out(),名称空间让厂商能够将其产品封装在一个叫做名称空间的单元中,这样就可以用名称空间的名称来指出你想用哪个厂商的out()函数了。比如a厂可以将其定义放到一个名为aa的名称空间中,b厂将其定义放在一个bb的名称空间中,这样就可以用名称空间来区分不同的out()函数了。
aa::out();//使用a厂商的out
bb::out();//使用b厂商的out
再看这段代码,现在他们都被放置在std的名称空间中(仅头文件没有.h时),意味着在iostream中定义的用于输出的cout变量实际上是std::cout,因此可以省略using。
然而多数人不喜欢将引入空间名称之前的代码转换成引入空间名称之后的代码。于是using编译指令应运而生,下面的一行代码表明,可以使用std名称空间中定义的名称,而不必使用std::前缀:
using namespace std;
这个using编译指令使得std空间名称中的所有名称都可以用,但是在大型项目中有一个潜在的问题,更好的方法是,只让所需的名称可用:
using std :: cout;
using std :: cin;
using std :: endl;
使用cout进行C++输出
现在来看一下如何显示一条消息,在C语言中可能会使用如下语句:
printf("Hello world!");
在C++中,我们将使用iostream下的cout函数来进行输出:
cout << "Hello";
双引号部分为字符串即要打印输出的部分,<<符号表示该语句将把字符串发送给cout,该符号指出了信息的流动路径。cout是一个预定义的对象,知道如何显示字符串、数字和单个字符等(对象是类的特定实例,类定义了数据的存储和使用方式)。
现在来看一下C++从概念上如何解释这个过程。从概念上来看,输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,其属性是在iostream文件中定义的。cout的对象属性包括一个插入运算符<<,它可以将其右侧的信息插入到流中。
控制符endl
可以简单的理解为和c语言\n效果一样,不过\n为转义序列。endl为控制符。一个差别就是,endl确保程序继续运行前刷新输出,将其立即显示在屏幕上,使用\n则不能提供这样的保证。
使用cin
可以理解为c语言中的getchar()。与cout一样cin也是一个智能对象。
这就是我的第一个CPP程序,详细的了解了C++的头文件,空间名称,cout,endl,cin。最后我使用的IDE是VS2018,强力安利一波。今后我每天都会再此更新我的CPP学习进度。
<CPP学习>第一天 第一个CPP程序 hello word的更多相关文章
- C语言搬书学习第一记 —— 认识一个简单程序的细节
#include<stdio.h> /*告诉编译器把stdio.h 中的内容包含在当前程序中,stdio.h是C编译器软件包的标准部分,它提供键盘输入和 屏幕输入的支持studio.h文件 ...
- C#.NET学习笔记2---C#.第一个C#程序
C#.NET学习笔记2---C#.第一个C#程序 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com 6.第一个C#程序: ...
- C#语言————第一章 第一个C#程序
第一章 第一个C#程序 ******************C#程序*************** ①:建立项目:文件-->新建-->项目-->c#-->控制台程 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- c++学习笔记---04---从另一个小程序接着说
从另一个小程序接着说 文件I/O 前边我们已经给大家简单介绍和演示过C和C++在终端I/O处理上的异同点. 现在我们接着来研究文件I/O. 编程任务:编写一个文件复制程序,功能实现将一个文件复制到另一 ...
- C#第一章 第一个C#程序
第一个C#程序 namespace 是C#中组织代码的方式,它的作用那个类似java中的包 using 在Java中作用如果导入其他包 应该是用import关键字而在C#中应使用using关键字来引用 ...
- Java学习 1.4——第一个Java程序:Hello World!
这一篇一起来写第一个Java程序,同时也了解一下IDEA的使用: 打开IDEA,新建项目: 选择Java,右边project SDK是选择Java版本,上一篇我们自己安装了JDK1.8,IDEA自带一 ...
- OD学习笔记10:一个VB程序的加密和解密思路
前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程 ...
- 【Python】Django学习一:第一个Django程序
项目开发环境 Python 3.6 Django 1.11.5 Django安装 在开始安装Django之前,Django更新比较频繁,所以要选择合适的版本,这里选择Django1.11.5. pip ...
随机推荐
- Spring定时器——时间设置规则
平时经常有一些写Spring定时器的需求,但是每次要设置定时器的时间的时候,老是既不住,到处找别人的博客又各种不爽,所以就自己记录一份吧,顺便整理一下. org.springframework.sch ...
- python的if语句
1.条件测试 (1)概念: 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试.Python 根据条件测试的值为True还是False来决定是否执行if语句中的代码. ...
- ATL模板库中的OLEDB与ADO
上次将OLEDB的所有内容基本上都说完了,从之前的示例上来看OLEDB中有许多变量的定义,什么结果集对象.session对象.命令对象,还有各种缓冲等等,总体上来说直接使用OLEDB写程序很麻烦,用很 ...
- 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装
1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...
- 常见ie6的浏览器兼容bug
1.文字本身的大小不兼容 同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的, ie下实际占高16px,下留白3px ff 下实际占高17px,上留白1px,下留白3px ...
- VC++中对数据类型的限制limits.h文件内容
limits.h文件中规定了是IDE在OS中规定了每个数据类型的最大值和最小值以及在程序源代码中编译时候所占用的字节数,这这样做有利于帮助程序员在编写程序的时候有效控制在选择合适数据类型的显示范围值. ...
- 操作Active Directory C#
.Net平台操作活动目录Active Directory,使用System.DirectoryServices.ActiveDirectory,主要是User OU 和Group的操作. 代码运行了一 ...
- 把web项目改造为maven项目
如题,资料网上有一大堆,这里是实践了做个整理. [注意]maven配置 maven要运行在JDK:外部JAVA_HOME指定到JDK,eclipse中runtime指定到JDK 在eclipse中配置 ...
- day3-购物车小程序
1.要求 启动程序后,让用户输入工资,然后打印商品列表 允许用户genuine商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒还有多少 可随时退出,退出时,打印已购买商品和余 ...
- 自动驾驶self driving知识点mark
C++, algorithm, RTOS,TX2, CAN, 标准, car model,