improt和include以及@class的关系

88 篇文章 0 订阅
49 篇文章 0 订阅

#include与#import的区别:两者的作用效果相同,只是后者不会引起交叉编译,确保头文件只会被导入一次

#import与@class区别:#import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。使用#import编译效率高,防止相互包含的编译错误!

Main.m

/*
    improt和include都是导入文件,
 
    区别是:include只是单纯的复制,
    但是import是在导入之前会判断当前文件是否存在已有的文件,
    如果没有再导入,否则不会导入
 */

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, World!");
        
    }
    return 0;
}

Student.h

//#import "Classes.h"

/*
 @class 可以解决互相导入的问题
 
 @class的作用:告诉编译器在其他地方已经定义了这个类,具体的属性和方法当前文件不知道
 
 */
<p style="margin-top: 0px; margin-bottom: 0px; font-size: 15px; font-family: Menlo; min-height: 18px;">
</p><p style="margin-top: 0px; margin-bottom: 0px; font-size: 15px; font-family: 'Heiti SC Light'; color: rgb(0, 132, 0);">
</p>
@class Classes;
@interface Student : NSObject {

    Classes *classes;   //班级
    
}

- (void)study;

Student.m

- (void)study {

    NSLog(@"学生在学习");
    
}
Classes.h

//#import "Student.h"
//注意:继承的时候不可以在头文件中使用@class,只能只有#import
//@class Student;
@class Student;

@interface Classes : NSObject{

    Student *student;
    
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值