Object-C与C++、C进行混合编程,采用将C++对象包装成Object-C对象,再给Object-C其他对象使用,Object-C的代码要使用C++的对象时,需要将.m文件改为.mm文件扩展名。
以下为示例代码,需添加libstdc++.6.dylib包。(附件中有工程实例):
CLanguage.c
// // CLanguage.c // CCTest // C语言 // Created by on 12-11-22. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #include <stdio.h> void doSomething(){ printf("调用C语言。"); }
CLibrary.h
// // CLibrary.h // CCTest // C++代码 // Created by on 12-11-22. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #ifndef CCTest_CLibrary_h #define CCTest_CLibrary_h #include <iostream> #endif
CLibrary.cpp
//#include <iostream> #include "CLibrary.h" using namespace std; class Human{ public: void getWeight(){ cout<<"Object C与C++混合编程。体重为:"<<weight<<"kg"; } void setWeight(int x){ weight = x; } private: int weight; };
ViewController.mm,调用测试
#include "CLibrary.cpp" #include "CLanguage.c" - (void)viewDidLoad { [super viewDidLoad]; //集成C和C++能将ios用户界面与传统代码集成起来,实现更强大的功能 //调用C++ Human human; human.setWeight(26); human.getWeight(); //调用C doSomething(); }