<CPP学习>第一天 第一个CPP程序 hello word

   由于我是计算机类嵌入式专业的大一学生,之前一直使用的是生万物的C语言,了解了其过程性语言的特性及其基础语法,在大一下学期期末阶段想自学一下C++,其实在开学初就买了一本C++ Primer,但由于各种原因没抽出空看,想借期末和暑假这一大段空余时间充分学习一下C++,这也是我写此电子笔记的初衷。

  C++是由C语言发展而来,C代表的是过程性语言,C++在C语言的基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。C语言与C++区别不多赘述,为什么要用面向对象,那什么又是面向对象呢?虽然结构化编程的理念提高了程序的可读性,但是在编写大型程序时仍然面临着挑战,为了应付这种挑战,OOP(面向对象)提供了一种新方法。与强调过程性编程不同的是,OOP强调的是数据。

  C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定的数据结构,类可以描述数据的基本特征,对象则是描述类的具体数据,通常,类规定了可使用哪些数据来表示对象以及可以对数据进行那些操作。

  接下来编写我的第一个CPP程序:

  

1 #include<iostream>
2 int main()
3 {
4   using namespace std;
5   cout << "Hello";
6   cout << endl;
7   cout << "world!";
8   return 0;          
9 }

  

  如果程序要使用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学习进度。

  

猜你喜欢

转载自www.cnblogs.com/Ryancxyxx/p/9170324.html