zoukankan      html  css  js  c++  java
  • C中的面向对象

          四月计算机语言排行榜,C王者归来,重登王者宝座,居然干掉了JAVA。说在前面的。

          都说c++是面向对象的,可为了满足c++语言的初衷:a better C!c++不得不兼容C,于是我们还是看得到写在类外面的函数、变量什么的,C#就不同了,结合Java和c++的各自优点,完全的面向对象,今天我要说的是用C来模仿C#中的面向对象,注意,仅是模仿~~~

    1)、c#中有类class,那么在C中用结构体struct代替;

    2)、c#类中有成员函数,那么C中用函数指针代替;

    下面各定义一个类和结构体,来表示一种窗体,当点击窗体时,提示窗体的ID和窗体的标题:

    c#中的类:

    C#中的类
     1 class Window
     2 {
     3    private string WndText;
     4    private string WndID;
     5    public Window(string text,string id)
     6    {
     7         WndText=text;
     8         WndID=id;
     9    }
    10    public void OnClick()
    11    {
    12      Console.Write("窗体"+WndID+"的标题为:"+WndText);
    13    }
    14 }

    客户端程序:

    1 Window win=new ("实例窗体","0x12345678");
    2 win.OnClick();//显示信息

    C中的结构体

    1 Struct Window
    2 {
    3    char *WndText;
    4    char *WndID;
    5    void (*OnClick)(char *text,char *id);//函数指针
    6 };

    客户端程序:

    代码
    void fun(char *text,char *id)
    {
       printf(
    "窗体%s的标题为:%s",id,text);
    }
    Window win;
    win.WndText
    ="c中的窗体";
    win.WndID
    ="0x87654321";

    win.OnClick
    =fun;//函数指针

    win.OnClick(win.WndText,win.WndID);
    //像类一样调用它的"成员函数"

    网上见一牛话:如果你爱编程,那么请爱C;如果你爱C,那么请爱指针;如果你爱指针,那么请爱指针的指针。

  • 相关阅读:
    css3 动画
    jQuery toast 淡入淡出提示
    JavaScript事件——拖拉事件
    Vue -- element-ui 限制只能输入number
    css 移动端页面,在ios中,margin-bottom 没有生效
    django 快速搭建blog
    python 正则表达式口诀
    [转]python os模块 常用命令
    【转】scapy 构造以太网注入帧
    【转】关于Scapy
  • 原文地址:https://www.cnblogs.com/xiaozhi_5638/p/1716369.html
Copyright © 2011-2022 走看看