Object-C、C、C++混合编程

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

猜你喜欢

转载自wenxin2009.iteye.com/blog/1733032