.h檔
#ifndef _CALC_CELL_H_
#define _CALC_CELL_H_

struct calc_cell
{
    double num;
    double (*add)(struct calc_cell*, double);
    double (*sub)(struct calc_cell*, double);
    double (*mul)(struct calc_cell*, double);
    double (*div)(struct calc_cell*, double);
    void (*release)(struct calc_cell*);
};
typedef struct calc_cell calc_cell, *LPcalc_cell;
double calc_cell_add(LPcalc_cell cell, double number);
double calc_cell_sub(LPcalc_cell cell, double number);
double calc_cell_mul(LPcalc_cell cell, double number);
double calc_cell_div(LPcalc_cell cell, double number);
void init_calc_cell(LPcalc_cell cell);
void calc_cell_release(LPcalc_cell cell);
#endif

.c檔的初始化
void init_calc_cell( LPcalc_cell cell)
{
    cell->num = 0;
    cell->add = calc_cell_add;
    cell->sub = calc_cell_sub;
    cell->mul = calc_cell_mul;
    cell->div = calc_cell_div;
    cell->release = calc_cell_release;
}

main檔
#include <stdio.h>
#include <stdlib.h>
#include "calc_cell.h"

int main()
{
    calc_cell mycell;
    init_calc_cell(&mycell);
    printf("mycell data: %f\n", mycell.num);
    printf("mycell data add 10: %f\n", mycell.add(&mycell, 10));
    printf("mycell data mul 10: %f\n", mycell.mul(&mycell, 10));
    printf("mycell data div 5: %f\n", mycell.div(&mycell, 5));
    printf("mycell data sub 100: %f\n", mycell.sub(&mycell, 100));
    mycell.release(&mycell);
    system("pause");
}

新手想法,請大家不吝賜教^^
http://damody.googlecode.com/files/example_C_use_OOP.7z

arrow
arrow
    全站熱搜

    讓地獄深紅的天亮 發表在 痞客邦 留言(2) 人氣()