C++、Objective-C 混合编程

在XCODE中想使用C++代码,你需要把文件的扩展名从.m改成.mm,这样才会启动g++编译器。

我们来看个测试代码:

class TestC {
private:
	NSString *str_;//C++类可以使用OC对象作为成员变量
	
public:
	TestC() {
		str_ = @"hi mc0066.";//构造函数内可以使用OC对象来赋值
	}
	TestC(NSString *str) {//函数可以接收OC对象(通过函数参数)
		str_ = str;
	}
	TestC(NSInteger num) {
		str_ = [NSString stringWithFormat:@"%d",num];//C++函数可以调用OC方法
	}
	void show() {
		printf("%s\n",[str_ UTF8String]);
		NSLog(@"str_ is:%@\n",str_);
	}
};
这是我写的C++类,类内部使用了OC的代码。根据测试可以确定以下几点:

1. C++函数内可以调用OC方法、可以创建OC对象、函数参数可以为OC对象。

2. C++类的成员变量可以是OC对象。

其实,在混编时,OC和C++的对象都是单纯的指针,所以可以任意的彼此调用对方的方法、使用对方的内部数据。


再来看看OC中是如何使用C++代码的:

@interface TestOC : NS
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值