首页 > 编程语言 >C语言基于面向对象的编程方法示例

C语言基于面向对象的编程方法示例

时间:2024-01-22 09:44:45浏览次数:23  
标签:name get int ops 示例 param C语言 面向对象 platform

C语言基于面向对象的编程方法示例

原型声明:

typedef struct _OBJECT_OPS {
    int (*get_name)(char *param);
    int (*set_name)(const char *param);
    int (*dump)(int level);
} OBJECT_OPS;

原型初始化:

OBJECT_OPS myself = {
    .get_name = get_my_name,
    .set_name = set_my_name,
    .dump = my_dump,
};

OBJECTS_OPT *p_platform_ops = &myself;

调用:

#define PLATFORM_CALL(func, ...) \
	((p_platform_ops && p_platform_ops->func) ? p_platform_ops->func(__VA_ARGS__) : false)

extern OBJECTS_OPT *p_platform_ops;

int general_get_name(char *param)
{
    return PLATFORM_CALL(get_name, param);
}

此时,上层直接调用general_get_name即可。

请记得给general_get_name函数声明。

标签:name,get,int,ops,示例,param,C语言,面向对象,platform
From: https://www.cnblogs.com/adam-ma/p/17979324

相关文章

  • fwrite、fread——《初学C语言第59天》
     ////————————fwrite//#include<stdio.h>//structS//{// chararr[10];// intage;// floatscore;//};//intmain()//{// structSs={"zhangjie",25,50.25};// //以二进制的形式写到文件中// FILE*pf=fopen("text.txt","wb");//......
  • 【C语言初阶篇】结构体知识点的全面讲解!
    <br><br/><center><fontcolor="#006666">......
  • 饿汉单例模式示例
    1publicclassSingleInstance{2/*3饿汉单例模式:在用类创建对象的时候,对象就已经准备好了41.定义一个类,把构造器私有52.定义一个静态变量存储一个对象6*/7publicstaticSingleInstanceinstance=newSingl......
  • sed的&操作符+复盘和把经验转化为能力+sed替换关联环境变量+SystemC+C++的struct和cla
    sed的&操作符sed一般是按行操作,如果匹配到,那么匹配到的内容被表示为&。以下是在单行操作中,想要实现在某行数据特定字符前后插入字符的方法。复盘和把经验转化为能力https://www.163.com/dy/article/GEI2Q9EN05429MRP.html通过寻找和尝试新的做事方式,你才能提高自己的能力。......
  • 封装验证码简单示例
    1publicclassAuthCode{2/**3*封装验证码4*/5publicstaticStringcreateCode(intn){6Stringchars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";7Stringcode="";8......
  • C# 布尔值和条件语句:入门指南和实用示例
    C#布尔值在编程中,通常需要一个只能有两个值之一的数据类型,比如:是/否开/关真/假为此,C#有一个bool数据类型,可以取true或false的值。布尔值使用bool关键字声明布尔类型,只能取true或false的值:示例:boolisCSharpFun=true;boolisFishTasty=false;......
  • C# 布尔值和条件语句:入门指南和实用示例
    C#布尔值在编程中,通常需要一个只能有两个值之一的数据类型,比如:是/否开/关真/假为此,C#有一个bool数据类型,可以取true或false的值。布尔值使用bool关键字声明布尔类型,只能取true或false的值:示例:boolisCSharpFun=true;boolisFishTasty=false;......
  • 用c语言编写一个简单的学生信息的录入查询
    include<stdio.h>include<string.h>structstudent{charname[20];//使用结构体对姓名年龄分数进行赋值intage;intscore;}st[3]={{"jack",18,80},{"Rose",17,85},{"tom",19,60}};intmain(intargc,charconst*argv[]){c......
  • 【数据结构】详谈队列的顺序存储及C语言实现
    循环队列及其基本操作的C语言实现前言大家好,很高兴又和大家见面啦!!!在上一篇内容中,我们在介绍完队列的基本概念、重要术语以及基本操作后,又回顾了一下数据结构的三要素——数据的逻辑结构、数据的存储结构以及数据的运算。队列这种数据结构我们已经介绍了它的逻辑结构以及数据运算......
  • Day54 面向对象11:方法重写
    面向对象11:方法重写(子类父类必须为非静态方法,无static)!重点:先看笔记!重写:需要有继承关系,是子类重写父类的方法!//重写只针对方法不针对属性或其它的1.方法名必须相同2.参数列表列表必须相同3.修饰符:范围可以扩大:public>Protected>Default>private4.抛......