Cの相手を探す

4169 ワード

Cの相手を探す
  • Cにオブジェクトを探します
  • バックグラウンド
  • 始めましょう
  • 注入
  • もう2つ
  • 資料
  • 作業

  • 背景
    N日前、スタジオで新しい募集が始まりました.同僚は私に「CHEN、後輩にどんな内容を話すつもりですか」と聞いた.N久の考えを経て、「プログラミングのモデルとJAVAの入門に連れて行こうかな」と思った.
    そこで資料とPPTがダウンロードしました
    始めよう
    実はC言語には類の概念はありませんが、これは対象に向かうものを書くことができないという意味ではありません.まず、Cで相手を書くなら、どんなものが一番いいか考えてみましょう.答えは構造体です.C言語は、基本的なデータ型に加えて、ユーザー自身がデータ型をカスタマイズする能力を提供しています.それは構造体です.構造体でオブジェクト向けの雛形を作ることができます.例えば彼氏の構造体
    typedef struct {
        double height;//  
        double width;//  
    } BoyFriend;

    そうですね.これで彼氏の構造体が身長があって、体が広い(==)です.しかし、彼は動作していません.服のモデルの棚のようです.だから、魂を与える時です.私たちは構造体を
    typedef struct {
        jdouble height;//  
        jdouble width;//  
        jstring name;//  
    
        Human human;//  
    
        void(*payUpMoney) ();//  
        void(*thinkQuestion)();//    
    } BoyFriend;

    動作が大きすぎて、急にたくさんのものをあげました.あなたは愚かかもしれません.私は少し話しましょう.1.jstringはどこから来たのか
    #ifdef __cplusplus 
    extern "C" {
    #endif
        typedef int jint;
        typedef char jchar;
        typedef short jshort;
        typedef unsigned char jboolean;
        typedef float jfloat;
        typedef double jdouble;
        typedef char * jstring;//   
    #ifdef __cplusplus
    }
    #endif

    実は彼はcharのポインタタイプで、JavaのStringの構造も悪くないと思います.この文章「StringとStringBuilderとStringBufferの3兄弟」を見てもいいです.他のものは、あなたが見てもわかると思います.2.Human humanはどこから来たの?
    typedef struct {
        jstring name;//  
        void(*thinkQuestion) ();//    
    } Human;

    Javaの基礎が少しあれば、私が何をするか知っていると信じています.間違いありません.継承します.3. void(*payUpMoney) ();何だ?
    文字通り、彼氏の支払いの関数です.しかし、彼の最も重要な身分は関数ポインタであり、虚関数のシミュレーションだろう.
    魂を注ぐ
    BoyFriend getBoyFriend() {
        BoyFriend boyFriend;
        //    
        boyFriend.name = (char *)malloc(sizeof(char)* 20);
        //  
        boyFriend.human = getHuman();
        //  
        boyFriend.payUpMoney = payUpMoney;
        boyFriend.thinkQuestion = thinkQuestion1;//     
    
        return boyFriend;
    }

    もうちょっと
    これらの構造体クラスを使用する場合は、2点1に注意する.ポインタは野ポインタと呼ばないように値を付けてください.構造体オブジェクトを取得する
    実はこの例を書くのはただ証明にすぎません:言語はいかなるプログラミングの範式に属しません.
    資料
    私の資料をダウンロードして理解を助けることができます.結局、私が書いたコードの注釈はたくさんあります.
    さぎょう
    資料には宿題があります.興味のある人はダウンロードできます.
    int、float、double、char型を格納できるポインタチェーンテーブルを実現し、主な操作は格納と取得である.加点点:insert(dataa);//パラメータinsert(dataA、dataB);//2つのパラメータ
    実はvoid*タイプと長くなるパラメータを使用します.興味があれば私と議論してもいいです.