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(); }