C/C++面向对象编程的设计思想

如何实现面向对象编程?

第一步:假设存在一个对象,设想可以为它提供什么服务

第二步:定义如何使用它的服务,细化为函数。

第三步:选择一种实现方法,写代码实现上面的接口。

//以下是一个代码事例

//DataStore.h

struct Student
{
	int id;
	char name[16];
	Student* next;
 } ;
 struct DataStore
 {
 	Student head;
 };
 DataStore* ds_create();
 
 void ds_destroy(DataStore* store);
 
 void ds_add(DataStore* store,Student* data);
 //按id查找一个记录 
 Student* ds_find(DataStore* store,int id);

 //按着id删除一个记录 
 void ds_remove(DataStore* store,int id);

 //打印所有的记录
 void ds_print(DataStore* store);
 
//DataStore.cpp
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#include"DataStore.h"
 DataStore* ds_create()
 {
 	DataStore* store = (DataStore*)malloc(sizeof(DataStore));
 	store->head.next = NULL;
 	
 	return store;
   
 }
 void ds_destroy(DataStore* store)
 {
 	Student* p = store->head.next;
 	
 	while(p)
 	{
 		Student* next = p->next;
 		free(p);
 		p = next;
	 }
	 free(store);
	 
 }
 void ds_add(DataStore* store,Student* data)
 {
 	Student* copy = (Student*)malloc(sizeof(Student));
 	*copy = *data;
 	
 	Student* cur = store->head.next;
 	Student* pre = &store->head;
 	while(cur)
 	{
 		if(copy->id < cur->id)
 		{
 			break;
		 }
		 pre = cur;
		 cur = cur->next;
		 
	 }
	 copy->next = pre->next;
	 pre->next = copy;
 }
 //按id查找一个记录 
 Student* ds_find(DataStore* store,int id)
 {
 	return NULL;
 }
 //按着id删除一个记录 
 void ds_remove(DataStore* store,int id)
 {
 	
 }
 //打印所有的记录
 void ds_print(DataStore* store)
 {
 	Student* p = store->head.next;
 	while(p)
 	{
 		printf("id = %d , name = %s \n",p->id,p->name);
 		p = p->next;
	 }
  } 
//DataStoreMAIN.cpp
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#include"DataStore.h"

int main()
{
	DataStore* store = ds_create();
	
	Student s;
	s.id = 17;
	strcpy(s.name,"xiaoming");
	ds_add(store,&s);
	
	s.id = 31;
	strcpy(s.name,"xiaowei");
	ds_add(store,&s);
	
	ds_print(store);
	
	ds_destroy(store);
	
	return 0;
}
 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值