生活随笔
收集整理的這篇文章主要介紹了
C语言实现面向对象示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用C語言實現面向對象的方法,面向對象的三個基本特征,對象唯一性,繼承性,抽象性。
使用C語言中的結構體和函數指針將數據與操作放在一起,使得一個問題的解決方法封裝在結構體中。
其中結構體的嵌套使用實現了繼承性。
[cpp] view plain
copy print?
#include<stdio.h>??#include<stdlib.h>??????struct??Adt2???{??????int?x;??????int?y;??????int?(*imll)(int?x,?int?y);??};????struct?Adt1??{??????int?var1;??????int?var2;??????struct??Adt2?var3;??????int?(*add)(int?x,?int?y);??????int?(*sub)(int?x,?int?y);??};????int?add(int?x,int?y);??int?sub(int?x,int?y);??int?imll(int?x,?int?y);????int?main()??{??????struct?Adt1?a;??????a.sub?=?sub;??????a.var3.imll?=?imll;??????a.var1?=?21;??????a.var2?=?12;??????a.var3.x?=?12;??????a.var3.y?=?13;??????a.add(a.var1,?a.var2);??????a.sub(a.var1,?a.var2);??????a.var3.imll(a.var3.x,a.var3.y);??????return?0;??}????int?imll(int?x,?int?y)??{??????printf("%d?*?%d?=?%d\n",x,?y,?x*y);??????return?x*y;??}????int?add(int?x,?int?y)??{??????printf("%d?+?%d?=?%d\n",?x,?y,?x+y);??????return?x+y;??}????int?sub(int?x,?int?y)??{??????printf("%d?-?%d?=?%d\n",x,?y,?x-y);??????return?x-y;??}??
#include<stdio.h>
#include<stdlib.h>struct Adt2
{int x;int y;int (*imll)(int x, int y);
};struct Adt1
{int var1;int var2;struct Adt2 var3;int (*add)(int x, int y);int (*sub)(int x, int y);
};int add(int x,int y);
int sub(int x,int y);
int imll(int x, int y);int main()
{struct Adt1 a;a.sub = sub;a.var3.imll = imll;a.var1 = 21;a.var2 = 12;a.var3.x = 12;a.var3.y = 13;a.add(a.var1, a.var2);a.sub(a.var1, a.var2);a.var3.imll(a.var3.x,a.var3.y);return 0;
}int imll(int x, int y)
{printf("%d * %d = %d\n",x, y, x*y);return x*y;
}int add(int x, int y)
{printf("%d + %d = %d\n", x, y, x+y);return x+y;
}int sub(int x, int y)
{printf("%d - %d = %d\n",x, y, x-y);return x-y;
}
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的C语言实现面向对象示例的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。