zoukankan      html  css  js  c++  java
  • 使用struct实现面向对象编程的封装

    虽然C是面向过程的语言,但是这不代表C不能使用面向对象的思想,本质上说语言只是一种手段而已,一种外在的表现形式,支持面向对象的语言只是通过设计的特定的关键字更好的表现了面向对象编程而已.C中也可以使用面向对象的思想,通过struct结构体和函数指针来实现.

    struct表示java或C#中的类Class,struct中的字段表示类中的属性,函数指针表示类中的方法.简单的实现代码如下:

    #include <stdio.h>
    
    /* 定义一个结构体,这个结构体相当于类
       name,age字段相当于属性
       函数指针sayhello,代表这个"类"的方法
    */
    typedef struct person {
        char *name;
        int age;
        int (*sayhello)(const struct person *p);
    }Person;
    
    //实现"类"中定义的方法
    int _sayhello(const struct person *p)
    {
        printf("My name is %s,my age is %d.
    ", p->name, p->age);
        return 0;
    }
    
    int main(void)
    {
        //声明一个实例并给其赋值,下面的赋值方法在GNU的gcc中是支持的
        Person p = {
            //字段赋值
            .name = "Linux",
            .age = 22,
            //函数指针实现
            .sayhello = _sayhello,
        };
        //调用"类"的方法
        p.sayhello(&p);
    
        return 0;
    }

    这样就简单的实现了一个类的封装.

  • 相关阅读:
    变量的使用
    Matrix Operations
    Modify tensor shape
    张量的创建
    feed_dict 的使用
    安装并配置 HBase2.2.2
    HDFS 编程实践(Hadoop3.1.3)
    TensorFlow的安装
    GUI tkinter (Menu) -弹出菜单
    GUI tkinter (Menu) -下拉菜单
  • 原文地址:https://www.cnblogs.com/wangluojisuan/p/3388556.html
Copyright © 2011-2022 走看看