2009-05-13 8 views
3

私は長い間、最初はBBCの最初のモデルBで基本的に手続き的にプログラムを作成していましたが、途中でアセンブリだけでなく大学でも少量のPascalをプログラミングしました。すべてのラウンドはるかに賢明に思えたし、それは私はいくつかの休憩後に非ウェブのものをプログラミングに戻って来るC++、PerlやJavaの、ルビー.....手続き型とオブジェクト指向型のプログラミング

で使用するすべてのだったOOが来たに沿って

その後iPhoneで8年ほど前からObjective Cは本当に簡単に手に入りましたが、Objective Cを落として低レベルのものを元の古いCに戻す必要があり、それが手続き型プログラミングに戻っています。など

私が後だことなどを対象に、手続きの部分をラップするかどうか、メモリ管理を行う方法、オブジェクト指向と手続きのスタイルをミックスする方法について良いガイドです

も良い基本的なガイド手続き的な言葉で考えることさえできないようでも、Cのための良い手続き型スタイルは役に立ちます。

+0

例と同様の質問があります。http://stackoverflow.com/questions/801976/mixing-c-functions-in-an-objective-c-class – rjstelling

答えて

4

私は、オブジェクト指向プログラミングを実装のための最高レベルの組織と手続き型プログラミングとして使用することをお勧めします。 OOは、インタフェース、コンポーネント間のコントラクト、コードを一貫性のあるチャンクなどに分割するのに最適です。

プログラマがオブジェクトについて最初に学習を始めるとき、オブジェクトを使ってナットを実行する傾向があります。 - タイプではそうするでしょう。すべての数がクラスになり、メソッドが必要になった場合に備えてクラス上でメソッドが広がります。あなたは最終的にいくつかの仕事をするコードを書くことに至るまでの遅れを遅らせることができます。

0

手続き的な方法で考える必要はありません。すべての低レベルのものをクラスにラップします。 objective-C++を使うことができます。

1

あなたの手続き/機能を静的なクラスメソッドと考えるだけで十分です。あなたのメモリ参照の範囲は少し異なりますが、それほど違いはありません。関数をパラメータとして渡されたデータにのみアクセスするように制限すると、シンボルを把握する必要がないので、さらに簡単です。

EDIT:私はここで一般的な方法で話していることを明確にする必要があります。私はiPhoneの開発をしていないので、そこでのメモリアクセス/管理に関して具体的に話すことができます。

1

私が知る限り、オブジェクト指向プログラミングは、本質的に、このデータのデータとアクションを結びつけることです。
C++とOjective-Cは、すでにベーキングされたメカニズムを提供していますが、あなた自身でそれを行うことはできます。

多くのCライブラリは、OOメソッドの最初のパラメータとして構造体ポインタをバインドするだけです。
これについては、「Cオブジェクト指向プログラミング」を参照してください。

関連する問題