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];

  • 相关阅读:
    项目UML设计(团队)
    项目选题报告答辩总结
    UIGestureRecognizer 手势
    CGAffineTransform 图像处理类
    block 应用说明
    Runtime-iOS运行时应用篇
    runtime之归档和解档
    Runloop
    加锁处理
    2017年浙江工业大学之江学院程序设计竞赛决赛 I: qwb VS 去污棒(可持久化Trie+离线)
  • 原文地址:https://www.cnblogs.com/chenhaosuibi/p/3442243.html
Copyright © 2011-2022 走看看