Friday, September 25, 2020

C Inheritance

labeledPoint.h

======================================================================== 

struct LabeledPoint;

struct LabeledPoint* makeLabeledPoint(double x, double y, char* label);


void setLabel(struct LabeledPoint *lp, char *label);

char* getLabel(struct LabeledPoint *lp);

======================================================================== 

labeledPoint.c

======================================================================== 

/* labeledPoint.c */

#include "labeledPoint.h"

#include <stdlib.h>


struct LabeledPoint {

    double x, y;

    char* name;

};


struct LabeledPoint* makeLabeledPoint(double x, double y, char* label) {

    struct LabeledPoint* p = malloc(sizeof(struct LabeledPoint));

    p->x = x;

    p->y = y;

    p->name = name;

    return p;

}

void setLabel(struct LabeledPoint* lp) {

    lp->name = name;

}

char* getLabel(struct LabeledPoint* lp) {

    return lp->name;

}

========================================================================

main.c

========================================================================

/* main.c */

#include "point.h"

#include "labeledPoint.h"

#include <stdio.h>


int main(int argc, char** argv) {

    struct LabeledPoint* origin = makeLabeledPoint(0.0, 0.0, "origin");

    struct LabeledPoint* lowerLeft = makeLabeledPoint(-1.0, -1.0, "lowerLeft");

    printf("distance = %f\n", getDistance(

        (struct Point*) origin, (struct Point*) lowerLeft));

}

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能