#include "mypoint.h" #include int strange_getX(myPt_t pt) { return 0; } int main(int argc, char **argv) { myPt_t p1 = new_myPt(3,4); myPt_t p2 = new_myPt(0,0); printf("\n%d %d\n", (int)(p1->distance_to_origin1(p1)),(int)(p1->distance_to_origin2(p1))); // wrong use, prevented by an OO language: printf("\n%d %d\n", (int)(p1->distance_to_origin1(p2)),(int)(p1->distance_to_origin2(p2))); // (you can prevent this in C via "incomplete struct types" but we have not // seen those) // not allowed in most OO languages: method update! p1->getX = strange_getX; printf("\n%d %d\n", (int)(p1->distance_to_origin1(p1)),(int)(p1->distance_to_origin2(p1))); printf("\n%d %d\n", (int)(p2->distance_to_origin1(p2)),(int)(p2->distance_to_origin2(p2))); return 0; }