www.pudn.com > ANSI_C_OOP.rar > Circle.c


#include 

#include "Circle.h"
#include "Circle.r"

static void * Circle_ctor (void * _self, va_list * app)
{	struct Circle * self = super_ctor(Circle, _self, app);

	self -> rad = va_arg(* app, int);
	return self;
}

static void Circle_draw (const void * _self)
{	const struct Circle * self = _self;

	printf("circle at %d,%d rad %d\n",
		x(self), y(self), self -> rad);
}

/*
 *	initialization
 */

const void * Circle;

void initCircle (void)
{
	if (! Circle)
	{	initPoint();
		Circle = new(PointClass, "Circle",
				Point, sizeof(struct Circle),
				ctor, Circle_ctor,
				draw, Circle_draw,
				0);
	}
}