|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Quenya 于 2020-3-15 13:28 编辑
要在C++顺序表中添加连接两个表的功能:就是定义了线性表中的顺序表,然后要实现顺序表c=a+b的功能,比如a是1,2,3 ;b是4,5,6,7,8,9,那c就应该是1,2,3,4,5,6,7,8,9嘛,但是我得到的c前两个元素不对,不管怎么改都是随机的两个数比如输出1549200,1510976,3,4,5,6,7,8,9
下面是我的错误代码,其他应该没问题,就是重载的加法、赋值和复制构造函数可能有错(seqList.h的118行起),能帮我看看吗
用的codeblocks
- #include "Seqlist.h"
- using namespace std;
- int main()
- {
- seqList <int> a;
- a.insert(0, 1);
- a.insert(1, 2);
- a.insert(2, 3);
- cout << a.length();
- a.traverse();//构建了一个顺序表a,表长为3,表内元素是1,2,3
- seqList <int> b;
- b.insert(0, 4);
- b.insert(1, 5);
- b.insert(2, 6);
- b.insert(3, 7);
- b.insert(4, 8);
- b.insert(5, 9);
- b.traverse();
- //再建一个顺序表b:4,5,6,7,8,9,表长为6
- seqList <int> c;
- c = a + b; //新增的加法功能,应得到新的顺序表c,表长为9,元素为1,2,3,4,5,6,7,8,9
- c.traverse(); //c表的第一第二个元素不正常,如果写c=a; c.traverse(); 输出正常
- cout << c.length();
- return 0;
- }
复制代码
头文件:seqList.h
- //头文件list.h,线性表的抽象类
- #ifndef LIST_H_INCLUDED
- #define LIST_H_INCLUDED
- #include <iostream>
- using namespace std;
- template <class elemType>
- class list
- {
- public:
- virtual void clear ()=0;
- virtual int length()const =0;
- virtual void insert (int i, const elemType &x)=0;
- virtual void remove (int i)=0;
- virtual int search (const elemType &x)const=0;
- virtual elemType visit (int i)const=0;
- virtual void traverse()const=0;
- virtual ~list(){};
- };
- #endif // LIST_H_INCLUDED
复制代码
————————————头文件中其他对顺序表的定义和实现没有问题——
之前不知道江湖规矩。。。。:P 直接把代码贴上来了hhh抱歉~
先谢谢大佬们~[鞠躬]
本帖最后由 bin554385863 于 2020-3-14 22:56 编辑
注释注释注释!@!!!!!!!!!!!!!!!!!!!!!!!
几百行代码一行注释都没!!!!!!!!
错误代码也不发!!!!!!!!!!!!
说实话,几百行代码,一句注释都没?谁能知道你想些什么
|
|