zoukankan      html  css  js  c++  java
  • 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];

  • 相关阅读:
    块结构在文件中的表示IOB【转载】
    LSTM输入层、隐含层及输出层参数理解【转载】
    L3-002 特殊堆栈 (30 分) 模拟stl
    L1-006 连续因子 (20 分) 模拟
    L2-014 列车调度 (25 分)
    L3-021 神坛 (30 分) 计算几何
    P1156 垃圾陷阱 DP
    P1063 能量项链 区间dp
    P1040 加分二叉树 区间dp
    P1605 迷宫 dfs回溯法
  • 原文地址:https://www.cnblogs.com/chenhaosuibi/p/3442243.html
Copyright © 2011-2022 走看看