C++ primer plus学习笔记 (1) _Setting out to C++

本系列仅记录个人在复习和学习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 <iostream>

预处理是指在编译之前进行的处理.#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值