Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- struct Person {
- char name[100];
- int age;
- void (*connect_methods)(struct Person *);//guess I coudl get rid of this and just use a function but somehow it seems nice to use a methodd to connect other methods, but usig a function would reduce the number of lines of code
- void (*increment_age)(struct Person *);
- void (*print_me)(struct Person *);
- };
- void increment_age(struct Person *self) {
- self->age++;
- }
- void print_me(struct Person *self) {
- printf("\nname:%s\nage%i\n",self->name,self->age);
- }
- void connect_methods(struct Person *self) {
- self->increment_age=&increment_age;
- self->print_me=&print_me;
- }
- int main(int argc, const char * argv[]) {
- struct Person p1;
- strcpy(p1.name,"Jhon Doe");
- p1.age=22;
- p1.connect_methods=&connect_methods;
- p1.connect_methods(&p1);
- struct Person p2;
- strcpy(p2.name,"Marry Joan");
- p2.age=33;
- p2.connect_methods=&connect_methods;
- p2.connect_methods(&p2);
- p1.increment_age(&p1);
- p1.print_me(&p1);
- p2.increment_age(&p2);
- p2.print_me(&p2);
- printf("end\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement