很多已经熟悉C/C++的朋友在初次使用Objective-C作为开发语言时不是很习惯,不过objective-C/C++本身又是几乎完全兼容GNU C/C++的。
这里作为一个代码实例来描述Objective-C与objective-C++如何混合使用。其实这就同C与C++如何混用一样,还是非常容易上手的。
不 过,为了能够更好地看清这一混合优势。项目中使用了objective-C/C++一个非常强大的语法——Category(类别,或范畴)对原有的类 Sample进行扩展,衍生出一个accumulateValue这个成员方法。这个方法的实现放在一个.mm文件中(.m文件表示objective- C源文件,.mm表示objective-C++源文件),并且通过一个模板函数来实现。
这段代码看上去比较复杂,不过这仅仅作为一个样例而已。模板函数的功能是将Sample类的一个对象的value值不断累加。
比如:初始值为1,那么迭代一次就是2;再迭代一次就是4。每次迭代都是自己与自己相加。
在accumulateValue方法的实现中,使用AccumulateValue<sizeof(self.value)>(self);表示在32位系统下迭代4次;在64位系统下迭代8次。
代码下载地址:http://dl.dbank.com/c0pzbnnx7a
转自iOS分享网http://iosshare.cn