欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言如何实现C++ 中的类?

程序员文章站 2022-07-28 14:45:32
c语言如何实现c++ 中的类? #include //c 语言没有类,但可以用结构体充当一个类 //与类不同,结构体只能定义变量,不能够定义函数,可以...

c语言如何实现c++ 中的类?

#include <stdio.h>  
//c 语言没有类,但可以用结构体充当一个类  
//与类不同,结构体只能定义变量,不能够定义函数,可以通过函数指针的方法来实现其功能   
//定义“类 ”的成员变量以及方法   
typedef struct person{  
    char name;  
    int age;  
    void (*eatfunction)(struct person this, int num);  
}person;   
  
//定义函数功能   
void eatfunction(struct person this, int num){  
    printf("test\n");  
}   
  
//定义“类 ”的构造函数  
//与面向对象不同,c语言的“类”的 构造函数不能放在“类”中,只能放在“类”外  
//构造函数主要完成 变量的初始化,以及函数指针的赋值   
person *newperson(person *this){  
    this->name = 'a';  
    this->age = 18;  
    this->eatfunction = eatfunction;  
}   
  
//主函数调用   
int main(){  
    person person;  
    newperson(&person);  
    person.eatfunction(person,0);  
    return 0;  
}   

注意:测试的时候要保存为.c格式,.cpp格式运行会报错,因为c++中 this是关键字 。