@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方式就不会出现这种问题了
版权声明:本文为博主原创文章,未经博主允许不得转载。
随机推荐
- 华为2015 简单 字典输入法 java
题目摘自http://blog.csdn.net/dongyi91/article/details/38639915 写了2个小时,水平太菜了 入法的编码原理为:根据已有编码表,当输入拼音和数字后输出 ...
- NOIP2015 提高组(senior) 解题报告
过了这么久才来发解题报告,蒟蒻实在惭愧 /w\ Day1 T1 [思路] 模拟 [代码] #include<iostream> #include<cstring> #inclu ...
- Git log高级用法
格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config ...
- Robocopy是微软Windows Server 2003资源工具包中众多多用途的实用程序之一(它是基于强大的拷贝程序
Robocopy是微软Windows Server 2003资源工具包中众多多用途的实用程序之一(它是基于强大的拷贝程序).没错,Robocopy的功能是拷贝文件,你也许会觉得无聊并且要翻阅下一篇文章 ...
- NULL指针 Void* 和野指针
在C和C++的语言中常常有这几个概念: NULL指针.空指针.Void *指针.野指针(Wild Pointer)甚至垂悬指针(Dangling Pointer). 1.NULL指针,一般用于指向一个 ...
- poj2186 Popular Cows(强连通)
崇拜有传递性.求所有牛都崇拜的牛tarjan算法求强连通. 如果不连通就不存在.如果联通,缩点后唯一一个出度为零的点就是答案,有多个则不存在. #include <vector> #inc ...
- 问题-delphi 调试(F8)错行处理
在delphi 7中(其他版本也可能碰到该问题),编译后,代码左边显示蓝色小点,表示哪句代 码是被编译了的,可今天我的一些代码不能显示那些蓝点了,这样也就不能在上面设断点了,而且用F8跟踪发现执行的顺 ...
- Java- 类型转换
有两个方法: Integer.valueOf 和 String.valueOf 注: 字串转成 Double, Float, Long 的方法大同小异.
- Shell脚本编程的常识
(这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d 目录 ...
- 【点滴积累】通过特性(Attribute)为枚举添加更多的信息
转:http://www.cnblogs.com/IPrograming/archive/2013/05/26/Enum_DescriptionAttribute.html [点滴积累]通过特性(At ...