黑马程序员技术交流社区

标题: include/import/class的区别 [打印本页]

作者: 闫跃文    时间: 2014-9-27 19:02
标题: include/import/class的区别
求解释????:handshake请详细一点啊
作者: 小叶子    时间: 2014-9-27 19:37
include是包含头文件,也就是.h文件,是直接将包含的.h文件中得全部代码拷贝过来

import是导入,导入一个外部文件啥的,

class是申明一个虚类,举个例子:在.h头文件中一般class这么用,如果不这么用得话,正确做法就该include"Person.h"
  1. <p style="font-size: 18px; line-height: normal; font-family: Menlo; color: rgb(209, 47, 27);"><span style="color: #78492a">#import </span><Foundation/Foundation.h></p>
复制代码
在.m中
  1. #import "Person.h"

  2. @implementation Baby
复制代码

如果不用class,在.h中你要include"Person.h"头文件一次,在.m实现时又要包含一次,相当于拷贝了2次Person头文件进去,浪费了~~


作者: sk0806    时间: 2014-9-27 19:48
正解啊,咋感觉这么像C里面的东东
作者: coyote    时间: 2014-9-27 22:17
首先,引入C或C++文件使用#include,但是使用#import可以避免引起交叉编译。@class和#import的区别在于,@class只是单纯告诉当前文件说,我现在后面这个东西是个类,但是这个类具体是什么样的,我没有告诉你。但是#import相当于把一个类的.h文件都引过来的。问题在于,我们什么时候用@class什么时候用#import呢?当你不需要告诉当前文件一个类的具体实现的时候,最好用@class,因为如果说在一个比较大的项目里面,许多类中都要导入很多的头文件,很容易造成循环引用。但是用@class的话,就会很好的避免这个问题!
作者: 闫跃文    时间: 2014-9-28 00:38
coyote 发表于 2014-9-27 22:17
首先,引入C或C++文件使用#include,但是使用#import可以避免引起交叉编译。@class和#import的区别在于,@c ...

好的,谢谢你啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2