A.h

class A{
public:
    B* m_;
}
1
2
3
4
这样会编译出错,因为B没有定义

#include "B.h"

class A{
public:
    B* m_;
}
1
2
3
4
5
6
但是这样,一旦B的定义修改,那么A.h也就会重新编译,导致所有用到A.h的文件也需要重新编译,这样就造成了编译依赖,增加了编译的时间,在大型项目中,如果很多这样的地方的话,甚至可能极度增加编译时间。为了避免这种情况,我们可以这么做 用 class B;

A.h

class B;
class A{
public:
    B* m_;
}
1
2
3
4
5
6
A.cpp

#include "B.h"
#include "A.h"
//具体实现
1
2
3
通过在A.h中声明class B,在A.cpp中include B.h,这样即使B.h改变,A.h也不会改变,其他使用到A.h的文件也就不需要重新编译了,这样就可以避免编译依赖,在大型项目中会节省很多时间

c++ class 类名 和 include 的区别相关推荐

  1. jsp:include和%@include%的区别

    <%@include%>和<jsp:include>的区别,发现了一些东西的. <%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把 ...

  2. 指令include和动作include的区别

    1. 指令include <%@include file="footer.jsp" %> 在hello.jsp中包含该页面 <%@ page language=& ...

  3. jsp中动态include与静态include的区别

    JSP中动态INCLUDE与静态INCLUDE的区别 动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" f ...

  4. <%@include%>和<jsp:include>区别浅谈

    jsp中include有两种方式: 1.指令元素include:<%@ include file=""%> 2.动作元素include:<jsp:include ...

  5. Forward与include的区别

    Forward与include的区别 jsp:include标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入,是将包含的文件放在JSP ...

  6. Android Makefile中inherit-product函数简介,以及与include的区别

    在 Android Makefile 中时不时会看见 inherit-product 函数的使用,类似下方这样:         $(call  inherit-product,  vendor/do ...

  7. php if require,php echo()和print()、require()和include()函数区别说明

    简单总结echo()和print().require()和include()等易混淆函数的区别 1.echo和print的区别 PHP中echo和print的功能基本相同(输出),但是两者之间还是有细 ...

  8. @include与jsp:include的区别

    1.可以使用一个JSP指令或者一个标准行为,在JSP页面中引入其他的页面片段. 2. include指令:在翻译阶段(将JSP页面转换成servlet的阶段),JSP的include指令会读入指定的页 ...

  9. C语言中,#include 和#include 的区别和注意点

    C语言中包含文件有两种包含符号,一个是<>尖括号,另一个是""双引号.那么这两个有什么区别呢? 首先在本地建立一个空文件,命名为stdio.h. 然后再建立一个C文件, ...

最新文章

  1. linux 64 nc,linux 命令之nc
  2. ABAP, Java和JavaScript三种语言的比较
  3. GaussDB NoSQL架构设计分享
  4. mooc中习题--简单运算器
  5. oppo9s刷机教程_oppor9s怎么自己刷机很简单的技巧
  6. javaweb开发后端常用技术_java web后端开发技术
  7. CentOS的虚拟机网卡eth0变成eth1
  8. 对话乔会君丨两年服务1700家企业,洪泰智造如何锻造下一个独角兽?
  9. MySQL基础 + 34道练习 +Mysql高级 + sql优化
  10. Java获取本地ip地址
  11. 【沙龙干货】Swift是花拳绣腿吗?开发语言与职业生涯如何选择?
  12. “科林明伦杯”哈尔滨理工大学暑假训练赛 B吃雪糕 (异或思维题)(补题)
  13. k3s证书过期的处理 以及 修改k3s证书有效期为10年(或自定义时间)
  14. 小程序识别企业微信二维码功能
  15. Linux安装及管理应用程序
  16. 二手物品交易管理系统
  17. flash/flex基础发展区别等
  18. 关于机器学习系统设计的一些思路
  19. 基于CAPE-OPEN标准开发化工模拟单元操作模块
  20. python破解百度网盘提取码_百度云提取码获取工具下载-获取百度云提取码下载v1.1 最新绿色版-西西软件下载...

热门文章

  1. 【李宏毅2020 ML/DL】P115-117 Actor-Critic Sparse Reward Imitation Learning
  2. 【LaTeX】LaTeX安装美赛模板(mcmthesis)使用笔记(含代码)
  3. mysql 锁 行级_全局锁、表级锁、行级锁mysql 极客评论笔记
  4. kindle5 去广告
  5. 设计一台模型计算机 实现下列指令系统,基本模型机的设计与实现1
  6. java8 lambda表达式Stream对List常用操作总结
  7. oracle无法减小列长度,中国港湾扩展表单分配时调整字段后保存时报错,无法正常维护表单定义...
  8. Linux Tun/Tap网口(/dev/net/tun)的读写方法
  9. 2018-01-17
  10. Go语言中的单元测试及反向代理