#import和#include的区别

news/2025/2/26 7:29:31

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

  1.  #import和#include的区别

import引入的头文件,可以防止重复包含

include它是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题

2. #import和@class的区别

#import会链入该头文件的全部信息,包括实体变量和方法等;而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑。在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。
在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。
如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。所以,一般来说,@class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。 在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@class中声明的类进来.

3. #import<> 和#import""的区别

""表示从当前项目路径开始寻找文件,如果找不到,则到系统(项目)中配置的头文件路径去找;
<>表示直接到系统(项目)中配置的头文件路径去找。

也就是说系统的头文件用<>,自定义类的头文件用“”。

转载于:https://my.oschina.net/u/2418942/blog/661929


http://www.niftyadmin.cn/n/3783166.html

相关文章

表单的总结

input type"reset" 设定这个属性可以快速重置form中其它填写的input值。input type"sumbit" 提交按钮转载于:https://blog.51cto.com/10145212/1653554

异或算法求一个数字重复或不成对 以及正整数转二进制

利用hashset&#xff08;重复的值添不进去 &#xff09;&#xff1a; 利用hashset&#xff08;只要重复了就将值溢出&#xff0c;最后留下的就是不成对出现的&#xff09;&#xff1a; 再将set转化成list&#xff0c;返回list[0]即可 自己转&#xff1a; API&#xff1a;

C++ 11中的auto和decltype

C 11中引入的auto主要有两种用途&#xff1a;自动类型推断和返回值占位。auto在C 98中的标识临时变量的语义&#xff0c;由于使用极少且多余&#xff0c;在C 11中已被删除。 auto自动类型推断&#xff0c;用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断&am…

Python基础:集合

集合(set)&#xff1a;把不同的元素组成一起形成集合&#xff0c;是python基本的数据类型。集合分类&#xff1a;可变集合&#xff08;set&#xff09;、不可变集合&#xff08;frozenset&#xff09;&#xff0c;创建方式一样集合特点&#xff1a;无序&#xff0c;唯一&#x…

学堂在线TsinghuaX: 00740043X C++语言程序设计基础 第二章Lab

第一题&#xff1a;简单题目&#xff08;求和&#xff0c;最大值&#xff0c;最小值&#xff09; 题目描述 任意给定n个整数&#xff0c;求这n个整数序列的和、最小值、最大值 输入描述 输入一个整数n&#xff0c;代表接下来输入整数个数&#xff0c;n<100,接着输入n个整数&…

CENTOS 6.5 x64环境下安装二进制版Mongodb- 2.6.11

1. 下载二进制版的安装文件&#xff1a;文件版本&#xff1a;mongodb-linux-x86_64-2.6.11.tgz下载地址&#xff1a;https://www.mongodb.org/downloads整合配置文件模板及服务器安装文件的版本&#xff1a;mongodb-linux-x86_64-2.6.11.tar.gz 2. 解压二进制版安装文件&#x…

给DataTable添加列默认值

"columnDefs": [ { "targets": "_all", "defaultContent": "" } ],转载于:https://www.cnblogs.com/af826/p/5411324.html

四金缴费比例: 个人缴纳部分公司缴纳部分

四金缴费比例&#xff1a; 个人缴纳部分公司缴纳部分养老保险金&#xff1d; 基数8% &#xff0b;基数22%医疗保险金&#xff1d; 基数2% &#xff0b;基数12%失业保险金&#xff1d; 基数1% &#xff0b;基数2%住房公积金&#xff1d; 基数7% &#xff0b;基数7%