■●★オブジェクト指向使うやつはバカ★●■
■ このスレッドは過去ログ倉庫に格納されています
0100デフォルトの名無しさん
NGNGtypedef struct Class{
void (*Method1)(struct Class*);
void (*Method2)(struct Class*);
int field1;
int field2;
}Class;
static void Class_Method1(Class* this){
printf("%d\n",this->field1);
}
static void Class_Method2(Class* this){
printf("%d\n",this->field2);
}
static Class* Class_Constractor(){
Class* this = (Class*)malloc(sizeof(Class));
this->Method1 = Class_Method1;
this->Method2 = Class_Method2;
this->field1 = 10;
this->field2 = 20;
return this;
}
static void SubClass_Method1(Class* this){
printf("%d\n",this->field1+this->field2);
}
static void SubClass_Method2(Class* this){
printf("%d\n",this->field1-this->field2);
}
static Class* SubClass_Constractor(){
Class* this = Class_Constractor();
this->Method1 = SubClass_Method1;
this->Method2 = SubClass_Method2;
return this;
}
int main(){
Class* this = Class_Constractor();
this->Method1(this);
this->Method2(this);
free(this);
this = SubClass_Constractor();
this->Method1(this);
this->Method2(this);
free(this);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています