博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ primer plus学习笔记 (1) _Setting out to C++
阅读量:5039 次
发布时间:2019-06-12

本文共 1307 字,大约阅读时间需要 4 分钟。

本系列仅记录个人在复习和学习C++中遇到的一些相对有用的概念,主要目的并非为向其他读者阐明,所以多有错漏、啰嗦之处,如果其中恰好有些东西对您有丝毫帮助,倍感荣幸!

Setting out to C++

代码在不同工作环境的一些调整方法

我使用的是linux下的Qt 5.7.1,编译器默认的C++标准是C++ 98,本书中很多代码使用了C++ 11的新标准,为了适应这一点,可以在CmakeLists.txt中加上这一句:

set( CMAKE_CXX_FLAGS "-std=c++11" )

为了避免练习用的控制台程序输出结果一闪而过的情况出现,可以在主函数return前加上:

cin.get();

The functon header as an interface

函数头是作为程序和程序之间相互调用的接口。请注意,函数头不是头文件.

请注意接口的概念,之后会不断的提到他.

  • 主函数的形参列表和被调用
    这个概念之前了解的比较透彻了,不过还是记录一下:
    main()函数一般不被其他函数调用,但是但是形如:
int main(int argc,char** argv)

的函数头是什么意思呢?虽然表面上没有代码调用了main函数,但是在编译中,编译器在程序中添加了代码,这段代码由操作系统启动,调用主函数,并且按照函数头中的参数列表将参数传入主函数中.

头文件与预处理器

看一下这条预处理指令:

# include 

预处理是指在编译之前进行的处理.#include<> 是将后面尖括号中的文件加入到程序中去,和源文件组合成一个新的文件用于准备下一步的编译.

因此,iostream可以称为include file,或者head file(头文件).

  • C++中头文件与c的区别

在形式上,C++的头文件没有.h的后缀,在这个基础上会产生一些头文件中函数的使用方法的区别.

例如:如果使用iostream而非iostream.h,则需要加入命名空间指令:

using namespace std;

命名空间

由于在c++中使用的函数和库过于庞杂,可能会出现这种情况:我们导入了两个库,这两个库中都有dout()这个函数,那么当我们在程序中调用dout()这个函数的时候,编译器是如何判断我们到底是想要调用哪个函数的呢?

为了解决这个问题,引入了命名空间的概念,使用using指令,就可以使用特定命名空间内函数:

using namespace std;//在之后的所有代码中都使用命名空间std定义的名称using std::cout;//仅使用std中的cout

函数原型 prototype

在进行编译之前编译器需要知道函数的参数和返回值信息,而这些信息是由函数原型提供的.

  • 与函数头的区别

    在形式上函数原型与函数头的区别在于函数原型后面带有分号.

  • 与函数定义的区别

    函数原型是对于接口的描述,因此函数原型不包括函数的具体实现方式,具体实现方式写在函数定义中.
    我们通常把函数原型放在头文件中.

转载于:https://www.cnblogs.com/WaterZen/p/7641506.html

你可能感兴趣的文章
CSS兼容性常见问题总结
查看>>
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
C# 启动进程和杀死进程
查看>>
tcp实现交互
查看>>
IIS的各种身份验证详细测试
查看>>
JavaScript特效源码(3、菜单特效)
查看>>
聊聊、Zookeeper Linux 单服务
查看>>
Linux常用命令总结
查看>>
KRPano动态热点专用素材图50多个,加动态热点使用方法
查看>>
yii模型ar中备忘
查看>>
C#线程入门
查看>>
CSS清除浮动方法
查看>>
JVM内存回收机制简述
查看>>
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
12th week blog
查看>>