C++02 tips

在这里插入图片描述

-两个冒号叫域的解析符,上图第三行的意思就是羁绊的意思,f有一个家(f 是 S里的一个函数)
第四行 ::f()意味着这是一个全局函数
第五行 这是一个全局变量a
不加冒号就是要用这个类里的成员变量a;

  1. 类的声明(declaration)以及这个类里所有函数的原型全部放在头文件.h里面,这些函数所有的body都放在.cpp里面
  2. 如果有一个函数声明在一个头文件里,在所有要用到这个函数的地方以及那个唯一去定义它的地方(一定有一个.cpp给出这个函数的body), 都应该include。类也一样。
  3. 在这里插入图片描述

头文件对于程序员来说是一种contract(合同),这是在设计这个类和使用这个类的人之间的一个合同
编译器(compile)会强化这个合同,它会要求在使用这些函数之前必须声明。

在这里插入图片描述
#include头文件的文本部分被插入到一个大大的编译前的文件里头,然后才会被编译。

在这里插入图片描述
在这里插入图片描述

在main里定义一个类,在.h告诉别人这个类长什么样子,有什么函数是你可以使用的,这些函数原型是什么,在使用者include后就能使用了

.h 和 .cpp应该成对出现

Declarations(声明) and Definitions(定义), only declarations are allowed to be in .h, extern variable(extern 变量是声明) function protitypes(函数原型,函数后面有大括号就是定义,没大括号就是声明), class/struct declaration

在这里插入图片描述
在这里插入图片描述
第一行的#ifndef(if no define) 如果没有定义XXXX,就会有下面文本的一切,如果之前已经定义,则下面程序不入编译器,
第二行#define(那就定义,宏定义,后面可以没有值。意思是定义了一个宏,)

Standard header file struct

#ifndef HEADER_FLAG
#define HEADER_FLAG
//TYPE declaraton here

#endif

上图标准头文件结构是为了防止在一个.cpp里面include同一个.h多次,而出现那个.h里面类的声明重复出现

.h里面放声明不放定义,是为了避免多个.cpp include同一个.h的时候。链接遇到重复定义的东西。

Tips for header

  1. 一个头文件里只能放一个类的声明。
  2. 它的对应的源代码文件用相同的前缀,把后缀改成.cpp,里面放的是函数的body
  3. The contents of a header file is surrounded with #ifndef #define #endif
  • field 用来表示成员变量(作用域是类,在类里的所有函数中都可以直接使用成员变量)
  • parameters 函数参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值