@class的基本使用
2-@class 的基本使用
1, @class的作用
@class 允许简单的引用类,即类的声明.告诉编译器,后面代码中可能会使用到的类名.
好比函数声明一样.
2, #import的作用
与 #include一样,用于导入文件内容
3,面试题:
#import与@class的区别
通常引用一个类有两种办法:
一种是通过#import方式引入;另一种是通过@class引入;这两种的方式的区别在于:
使用方法
1)#import 方式会包含被引用类的所有信息,包括被引用类的变量和方法;@class方式只是告诉
编译器在 A.h文件中B *b只是类的声明,具体这个类里有什么信息,这里不需要知道,等实现文
件中真正要用到时,才会真正去查看B类中信息;
2)使用@class方式由于只需要只要被引用类(B类)的名称就可以了,而在实现类由于要用到被
引用类中的实体变量和方法,所以需要使用#import来包含被引用类的头文件;
3)通过上面2点也很容易知道在编译效率上,如果有上百个头文件都#import了同一
个文件,或 者这些文件依次被#improt(A->B, B->C,C->D...),一旦最开始的头文件稍有改动,后面引用到这
个文件的所有类都需要重新编译一遍,这样的效率也是可想而知的,而相对来
讲,使用@class方
式就不会出现这种问题了;
4)对于循环依赖关系来说,比方A类引用B类,同时B类也引用A类,B类的代码
作用上的区别
#import 会包含引用类的所有信息(内容),包括引用类的变量和方法@class仅仅是告诉编译器有这么一个类,具体这个类里有什么信息,完全不知
效率上的区别
如果有上百个头文件都#import了同一个文件,或者这些文件依次被#import,那么一旦最开始的头
文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,编译效率非常低
相对来讲,使用@class方式就不会出现这种问题了
版权声明:本文为博主原创文章,未经博主允许不得转载。
随机推荐
- Windows下部署Git Server端
解决方案一: (注意:如果英文阅读没太大障碍,直接到Bonobo官网看相关文档即可.) win7(windows server 2008应该也可以,没测试过)+ IIS7.5(win7自带的)+ Gi ...
- 非递归实现先序遍历 java leecode 提交
写完才知道自己学习都是似是而非啊,大家可以也在leecode上提交代码,纯手写,离开eclipse第一种方式:数据结构书上的,使用栈大概思路.1.不断将根节点的左孩子的左孩子直到为空,在这个过程入栈. ...
- andriod and linux kernel启动流程
虽然这里的Arm Linux kernel前面加上了Android,但实际上还是和普遍Arm linux kernel启动的过程一样的,这里只是结合一下Android的Makefile,讲一下boot ...
- Java和C++的区别
这是一个Java语言和C++语言之间的比较. 目录 [隐藏] 1 设计目标 2 语言特性 2.1 语法 2.2 语义 2.3 资源管理 2.4 库 2.5 运行时 2.6 模板 vs. 泛型 2.7 ...
- Codeforces 650C Table Compression (并查集)
题意:M×N的矩阵 让你保持每行每列的大小对应关系不变,将矩阵重写,重写后的最大值最小. 思路:离散化思想+并查集,详见代码 好题! #include <iostream> #includ ...
- SPI协议及其工作原理浅析
转载自:http://bbs.chinaunix.net/thread-1916003-1-1.html一.概述. SPI, Serial Perripheral Interface, 串行外围设备接 ...
- mysql实用指南
mysqld --verbose --help: 可以显示 mysql 的编译配置选项,即功能配置描述. mysql 的配置文件my.cnf调用次序(mysqld --verbose --help 的 ...
- 问题-[Delphi7]程序在WIN7电脑上的日期错误处理
问题现象:我想大家都遇到过在XP上没有问题的日期格式,到了WIN7之后就不行了. 问题原因:因为在WIN7中增加了新的日期格式,但是老的DELPHI未处理(如果我说错了,希望高人指点). 问题处理: ...
- JQuery简单实现锚点链接的平滑滚动
在平时的项目中,我们经常需要一些特效链接,如果使效果进一步加强,我们可以使点击锚点链接平滑滚动到锚点,下面就来给大家讲解下如何使用jQuery来实现. 一般使用锚点来跳转到页面指定位置的时候,会生 ...
- 从a站点跳转到b站点,通过url的参数判断是否让该用户选择身份
一.问题的由来 问题是这样子给出来,今天产品那边跟我说,在a网站跳转到b网站时,让用户有一个选择身份的弹窗.因为公司有两个不同站点,你无论在a或者b网站注册后,都可以随便登录这两个站点,进入之后都会有 ...