Αφηρημένοι τύποι δεδομένων

Παράδειγμα

Το παρακάτω παράδειγμα ορίζει έναν ΑΤΔ για σημεία σε δύο διαστάσεις. Ο τελεστής -> στη χρήση structure_pointer->member είναι συντομογραφία του (*structure_pointer).member.

Δηλώσεις: point.h

/*
 * Abstract Data Type Definition file point.h
 */

typedef struct s_point *point;

point new_point(void);
int get_x_point(point p);
int get_y_point(point p);
void set_point(point p, int x, int y);
void delete_point(point p);

Ορισμοί: point.c

/*
 * Abstract Data Type Implementation file point.c
 */

#include <stdlib.h>
#include "point.h"

struct s_point {
	int x, y;		/* Point coordinates */
};

point
new_point(void)
{
	return (point)malloc(sizeof(struct s_point));
}

int
get_x_point(point p)
{
	return (p->x);
}

int
get_y_point(point p);
{
	return (p->y);
}

void
set_point(point p, int x, int y)
{
	p->x = x;
	p->y = y;
}

void
delete_point(point p)
{
	free(p);
}

Σημείωση: στη γλώσσα C++ οι μέθοδοι new και delete παρέχονται από τη γλώσσα, ενώ στις υπόλοιπες συναρτήσεις ο δείκτης p μεταφέρεται αυτόματα