• OC和C++的混用1


    //Objective-C

    /*在混用之前需要做一步非常重要的事:不是代码而是编译器选项,在做混合编译之前一定要把编译器的Compile Sources As选项改为Objective C++

     修改方法:

     target->BuildSetting->Apple LLVM compiler 4.0 - Language选项底下的Compile Sources As修改为:Objective C++*/

    #import <Foundation/Foundation.h>

    class CPlusPlusClass;//这里不能使用@class指令,我猜测的原因可能是:后面的类是c++类,若要引用oc类肯定是用@class无疑

    @interface Objective_CClass : NSObject

    {

        @private

        CPlusPlusClass *testObj;

    }

    - (void)thisIsMyObjectiveCMethod;

    @end

    #import "Objective-CClass.h"

    #import "CPlusPlusClass.h"

    @implementation Objective_CClass

    - (id) init {

        if (self = [super init]) {

            testObj = newCPlusPlusClass();

        }

        

        returnself;

    }

    - (void)thisIsMyObjectiveCMethod

    {

        testObj->setCPlusPlus(100);

        testObj->thisIsMyCPlusplusMethod();

    }

    @end

    //C++

    #ifndef __OC_C______CPlusPlusClass__

    #define __OC_C______CPlusPlusClass__

    #include <iostream>

    class CPlusPlusClass

    {

    private:

        int CPlusPlus;

    public:

        CPlusPlusClass();

        virtual ~CPlusPlusClass();

        void setCPlusPlus(int num);

        void thisIsMyCPlusplusMethod ();

    };

    #include "CPlusPlusClass.h"

    #include "Objective-CClass.h"

    usingnamespace std;

    CPlusPlusClass::CPlusPlusClass()

    {

        cout<<"构造函数被调用"<<endl;

    }

    CPlusPlusClass::~CPlusPlusClass()

    {

        cout<<"析构函数被调用"<<endl;

    }

    void CPlusPlusClass::setCPlusPlus(int num)

    {

        this->CPlusPlus = num;

    }

    void CPlusPlusClass::thisIsMyCPlusplusMethod()

    {

        cout<<CPlusPlus<<endl;

    }

    //以下是调用

    Objective_CClass *obj = [[Objective_CClass alloc] init];

    [obj thisIsMyObjectiveCMethod];

  • 相关阅读:
    生成1--n的全排列
    小P的秘籍
    小P的字符串
    小P的金字塔
    2198: 小P当志愿者送餐
    交换排序(快速排序重点)
    关于上级机构的冲突性测试bug修复
    系统当前时间system.currenttimemillis与new Date().getTime() 区别
    Servlet中(Session、cookies、servletcontext)的基本用法
    默认图片展示(个人信息模块)
  • 原文地址:https://www.cnblogs.com/chenhaosuibi/p/3442243.html
Copyright © 2020-2023  润新知