首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayList C++问题

ArrayList C++问题
EN

Stack Overflow用户
提问于 2010-11-09 01:00:36
回答 2查看 728关注 0票数 0

我在互联网上找到了一个数组列表类,在http://code.google.com/p/arraylist/downloads/detail?name=arraylist-v1.zip上。

在使用MS Visual C++的windows上,它编译得很好,而在OS和GCC的操作系统下,我得到了大量的错误。以下是错误输出:

代码语言:javascript
复制
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/consolerpg
mkdir -p build/Debug/GNU-MacOSX
rm -f build/Debug/GNU-MacOSX/arraylist.operators.o.d
g++ -fpermissive   -c -g -MMD -MP -MF build/Debug/GNU-MacOSX/arraylist.operators.o.d -o build/Debug/GNU-MacOSX/arraylist.operators.o arraylist.operators.cpp
arraylist.operators.cpp:86: error: redefinition of 'datatype& arraylist<datatype>::operator[](int)'
arraylist.operators.cpp:86: error: 'datatype& arraylist<datatype>::operator[](int)' previously declared here
arraylist.operators.cpp:100: error: redefinition of 'const datatype& arraylist<datatype>::operator[](int) const'
arraylist.operators.cpp:100: error: 'const datatype& arraylist<datatype>::operator[](int) const' previously declared here
arraylist.operators.cpp:128: error: redefinition of 'const arraylist<datatype>& arraylist<datatype>::operator=(const arraylist<datatype>&)'
arraylist.operators.cpp:128: error: 'const arraylist<datatype>& arraylist<datatype>::operator=(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:157: error: redefinition of 'arraylist<datatype> arraylist<datatype>::operator+(const arraylist<datatype>&)'
arraylist.operators.cpp:157: error: 'arraylist<datatype> arraylist<datatype>::operator+(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:186: error: redefinition of 'const arraylist<datatype>& arraylist<datatype>::operator+=(const arraylist<datatype>&)'
arraylist.operators.cpp:186: error: 'const arraylist<datatype>& arraylist<datatype>::operator+=(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:201: error: redefinition of 'arraylist<datatype> arraylist<datatype>::operator-(const datatype&)'
arraylist.operators.cpp:201: error: 'arraylist<datatype> arraylist<datatype>::operator-(const datatype&)' previously declared here
arraylist.operators.cpp:223: error: redefinition of 'const arraylist<datatype>& arraylist<datatype>::operator-=(const datatype&)'
arraylist.operators.cpp:223: error: 'const arraylist<datatype>& arraylist<datatype>::operator-=(const datatype&)' previously declared here
arraylist.operators.cpp:256: error: redefinition of 'arraylist<datatype> arraylist<datatype>::operator*(const int&)'
arraylist.operators.cpp:256: error: 'arraylist<datatype> arraylist<datatype>::operator*(const int&)' previously declared here
arraylist.operators.cpp:280: error: redefinition of 'const arraylist<datatype>& arraylist<datatype>::operator*=(const int&)'
arraylist.operators.cpp:280: error: 'const arraylist<datatype>& arraylist<datatype>::operator*=(const int&)' previously declared here
arraylist.operators.cpp:322: error: redefinition of 'arraylist<datatype> arraylist<datatype>::operator/(const int&)'
arraylist.operators.cpp:322: error: 'arraylist<datatype> arraylist<datatype>::operator/(const int&)' previously declared here
arraylist.operators.cpp:347: error: redefinition of 'const arraylist<datatype>& arraylist<datatype>::operator/=(const int&)'
arraylist.operators.cpp:347: error: 'const arraylist<datatype>& arraylist<datatype>::operator/=(const int&)' previously declared here
arraylist.operators.cpp:367: error: redefinition of 'bool arraylist<datatype>::operator==(const arraylist<datatype>&)'
arraylist.operators.cpp:367: error: 'bool arraylist<datatype>::operator==(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:394: error: redefinition of 'bool arraylist<datatype>::operator!=(const arraylist<datatype>&)'
arraylist.operators.cpp:394: error: 'bool arraylist<datatype>::operator!=(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:418: error: redefinition of 'bool arraylist<datatype>::operator>(const arraylist<datatype>&)'
arraylist.operators.cpp:418: error: 'bool arraylist<datatype>::operator>(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:425: error: redefinition of 'bool arraylist<datatype>::operator<(const arraylist<datatype>&)'
arraylist.operators.cpp:425: error: 'bool arraylist<datatype>::operator<(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:432: error: redefinition of 'bool arraylist<datatype>::operator>=(const arraylist<datatype>&)'
arraylist.operators.cpp:432: error: 'bool arraylist<datatype>::operator>=(const arraylist<datatype>&)' previously declared here
arraylist.operators.cpp:438: error: redefinition of 'bool arraylist<datatype>::operator<=(const arraylist<datatype>&)'
arraylist.operators.cpp:438: error: 'bool arraylist<datatype>::operator<=(const arraylist<datatype>&)' previously declared here
make[2]: *** [build/Debug/GNU-MacOSX/arraylist.operators.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 427ms)

有没有某种VC++兼容性标志,或者更好的是,你能提供一个样本校正,这样我就可以校正它们了吗?

谢谢!

Yvan

EN

回答 2

Stack Overflow用户

发布于 2010-11-09 01:10:41

让我们来看一下代码…

代码语言:javascript
复制
// arraylist.operators.cpp

#ifndef __arraylist_CLASS__
#include "arraylist.h"
#endif

然后我们就有了

代码语言:javascript
复制
// arraylist.h

#include "arraylist.cpp"
#include "arraylist.operators.cpp"

因此,如果编译arraylist.operators.cpp,它将包含arraylist.h,其中包含arraylist.operators.cpp…

这个类看起来像一堆狗屎,只需使用std::vector即可。

票数 5
EN

Stack Overflow用户

发布于 2010-11-09 01:04:34

没有兼容性标志。你看过STL list了吗?它已经在visual c++和gcc上实现了,可以做你想做的事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4126094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档