C语言 实现面向对象

 

/*************************************************************************
    > File Name: object.c
    > Author: TANG
    > Mail: tjcmail@126.com 
    > Created Time: 2018年08月03日 星期五 10时32分33秒
 ************************************************************************/

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

/*对象的功能描述*/
typedef struct{
	int fd;
	int (*open)(char *path,int flag,unsigned int mode);
	int (*write)(int fd,char *buf,int size);
	void (*close)(int fd);
}file_t;

/*对象的功能实现*/
int open_file(char *path,int flag,unsigned int mode)
{	
	int fd = 0;
	return open(path,flag,mode);
}
/*对象的功能实现*/
int write_file(int fd,char *buf,int size)
{
	return write(fd,buf,size);
}
/*对象的功能实现*/
void close_file(int fd)
{
	close(fd);
}


int main()
{
	char *str = "hello! My object!\n";

	/*创造一个对象*/
	file_t tfile;

	/*给对象初始化一下*/
	tfile.open = open_file;
	tfile.write = write_file;
	tfile.close = close_file;
	
	/*就可以用了*/
	tfile.fd = tfile.open("hello.txt",O_CREAT|O_RDWR,0664);
	tfile.write(tfile.fd,str,strlen(str));
	tfile.close(tfile.fd);

	return 0;
}

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是唐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值