面向对象CPP1

arwen0129 2010-10-16 05:18:38

#include <stdio.h>
#include <memory.h>

typedef struct taglist
{
int *m_pList;
int m_iUsedLength;
int m_iTotalLength;
}LIST;


bool Init_List(LIST *pList, int iLength)
{
if(NULL != pList->m_pList)
{
delete[] pList->m_pList;
pList->m_pList = NULL;
}
pList->m_pList= new int[iLength];
if(NULL == pList->m_pList)
{
return false;
}
pList->m_iTotalLength = iLength;
pList->m_iUsedLength = 0;
return true;
}

void Destory_List(LIST *pList)
{
if(NULL == pList)
{
return;
}

if(NULL == pList->m_pList)
{
if(0 != pList->m_iUsedLength || 0 != pList->m_iTotalLength)
{
pList->m_iUsedLength = 0;
pList->m_iTotalLength = 0;
}
return;
}

delete[] pList->m_pList;
pList->m_pList = NULL;
pList->m_iUsedLength = 0;
pList->m_iTotalLength = 0;

return ;
}

bool Input_List(LIST *pList, int iValue)
{
if(NULL == pList)
{
return false;
}
if(NULL == pList->m_pList)
{
return false;
}
if(pList->m_iUsedLength >= pList->m_iTotalLength)
{
return false;
}
pList->m_pList[pList->m_iUsedLength] = iValue;
pList->m_iUsedLength++;
return true;
}

void Output_List(LIST *pList)
{
if(NULL == pList)
{
printf("%s\r\n", "list not exist");
return;
}
if(NULL == pList->m_pList || 0 == pList->m_pList)
{
printf("%s\r\n", "list is empty");
return;
}
for(int i = 0; i<pList->m_iUsedLength; i++)
{
printf("%d\t", pList->m_pList[i]);
}
return;
}


int main(int argc, char *agrv[])
{
LIST listA,listB;
memset(&listA, 0, sizeof(listA));
int i=0;
Init_List(&listA, 10);
for(i=0; i<10; i++)
{
Input_List(&listA, i);
}
listA.m_iUsedLength = 0; //缺点,成员变量没有被隐藏。
//listA.m_iTotalLength = 0; //缺点同上
//listA.m_pList = NULL; //同上
//其它缺点:实例化的变量都是全局的。
Output_List(&listA);
Destory_List(&listA);
return 0;
}
...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
arwen0129 2010-10-17
  • 打赏
  • 举报
回复
些错了,面向过程,这个只是记录下笔记,不好意思,没别的意思,不需要大家回复和评论!多谢热心肠的朋友回复
gules 2010-10-16
  • 打赏
  • 举报
回复
这也是“面象对象”?真是一个用滥了的词汇!

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧