0

私は、ウィンドウが機能するために必要なすべてのクラスとメソッドを備えた、学校のウィンドウ用の作業フレームワークを開発しました。これはいくつかのクラスの一部の例です。すべてのコードをここに貼り付けるつもりはありません。

Widget.h (基本クラス)

class Widget {
    public:
        Widget(...);
        ...
        virtual std::string getLabel() const;
        virtual void setLabel(const std::string label);
        ...
    private:
        std::string m_label;
        Widget* m_parent;
        Measure m_position; // struct: int x, int y
        Measure m_size;
};

ボタン.h

class Button : public Widget {
    public:
        Button(...);
        ...
        virtual void setTarget(Widget* target);
        ...
    private:
        Widget* m_target;
};

LineEdit.h

class LineEdit : public Widget {
    public:
        LineEdit(...);
        ...
        virtual void setMaximumLenght(int lenght);
        ...
    private:
        int m_maximumLength;
};

などなど... これらはすべて単なるヘッダーファイルであり、対応する.cppファイル内にメソッドなどを実装しています。

この期間の私の宿題は、Objective-C と Cocoa で Mac の OS-X 用にそれらを実装することです。そのため、ヘッダーは OS-X と Windows の両方で機能します。私は自分で休むことができますが、OS-Xでこれらのヘッダーファイルを使用する方法を知りたいので.m.cpp. 何か案は?私はこのようなことに慣れていません。

4

1 に答える 1

0

同じプロジェクトで .cpp ファイルと .m ファイルを組み合わせることができます。つまり、実装に Windows 固有のコードがない場合は、それをプロジェクトに追加してコンパイルできます。Objective-C++の概念もあります。.mmこれにより、C++ と Objective-C の両方を使用してファイルにコードを記述し、それらの間で呼び出しを行うことができます。

一方、Objective-C ですべてを実装する必要がある場合は、ヘッダーを書き直して Objective-C クラス (C++ クラスではない) を定義し、実装を書き直す必要があります。

于 2012-11-26T14:45:13.123 に答える