| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:关于C++中类的问题······
取消只看楼主 加入收藏
有风的夜晚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:24
专家分:26
注 册:2010-3-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
关于C++中类的问题······
各位大虾们,本人刚学数据结构,想用VC6.0中的类编写线性表的顺序实现,结果发现了几个问题:

1.类中以public定义的数据能否被主函数引用?

2.return和exit后返回的 OK ,OVERFLOW等是怎么用的?是不是要先用#define宏定义下?
  return 1 和exit(-1)运行后有什么表现?

3.对类中的数据如何用构造函数初始化:
  a.无输入值时?
  b.有输入值时?
  希望讲详细点,我对此很混乱········谢谢
 
4.如果有一个模板的话会更好·····

以下是我编的程序,运行到没什么太大问题,但是不是很满意:
  a.希望能随自己意愿编写不同类型的表····
  b.结构体SqList L是在主函数中定义的,要是能在类中直接定义就好了·····
  c.其他的倒没想到什么,希望大家帮我多看看提提意见····


//线性表的顺序印象实现
#include<iostream.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREAMENT 10

typedef struct
{
int * elem;
int length;
int listsize;
int elemnum; //代替书中的ListLength函数
}SqList;

class List
{
public:
InitList(SqList L); //建立一个空表,并返回基地址
DestroyList(SqList L); //删除表,并释放空间
ClearList(SqList L); // 清空表
ListEmpty(SqList L); //调查表是否为空,实则返回1
  GetElem(SqList L, int i, int *t); //获得表内某个元素的值
LocateElem(SqList L, int e, int *q(int t,int e)); // 找到某个元素的位置
PriorElem(); //找到某个元素的前驱
NextElem(); //找到某个元素的后继
ListInsert(); //在表中插入元素   
ListDelete(); //删除某个元素
ListTraverse(); //对表中元素依次调用函数*visit



   

};

int List::InitList(SqList L)
{
//暂时只能是整型
//一次只能建一个
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem) exit(0);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return 1;
}

int List::DestroyList(SqList L)
{
int *p=L.elem;
while(L.listsize--) free(p++);
return 1;
}

int List::ClearList(SqList L)
{
int i=0;
int *q=L.elem;
for( ; i<L.elemnum ; i++)   
{
*q=0;
q=q+1;
}
return 1;
}

int List::ListEmpty(SqList L)
{
int i=0;
int *q=L.elem;
for( ; i<L.listsize ; i++)
{
if(*(q++)) break;
}
if(i==L.listsize) return 0;
else return 1;
}

int List::GetElem(SqList L, int i, int *t)
{
if(ListEmpty( L )) *t=*(L.elem+i);
return ( *t );
}

int List::LocateElem(SqList L, int e, int *q(int t,int e))
{
int i=0;
int t=*(L.elem);
for( ; i<L.elemnum ; i++)
{
if(q(t,e)) break;
}
if(i==L.elemnum) return 0;
else return ( i );
}





void main()
{
extern SqList L;  
List Text;
Text.InitList( L);
cout<<Text.ListEmpty(L);
}



再次感谢各位大侠
搜索更多相关主题的帖子: 数据 public return 线性表 
2010-04-06 22:56
快速回复:关于C++中类的问题······
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016732 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved