Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ArrayList C++;问题_C++_Arrays_Gcc_G++_Arraylist - Fatal编程技术网

C++ ArrayList C++;问题

C++ ArrayList C++;问题,c++,arrays,gcc,g++,arraylist,C++,Arrays,Gcc,G++,Arraylist,我在网上找到了一个arraylist类 在Windows上使用MS Visual C++编写的精细,在GOS下的OX X,我得到了大量的错误。以下是错误输出: "/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 b

我在网上找到了一个arraylist类

在Windows上使用MS Visual C++编写的精细,在GOS下的OX X,我得到了大量的错误。以下是错误输出:

"/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)
“/usr/bin/make”-f nbproject/Makefile-Debug.mk QMAKE=子项目=.build conf
“/usr/bin/make”-f nbproject/Makefile-Debug.mk dist/Debug/GNU MacOSX/consolerpg
mkdir-p build/Debug/gnumacosx
rm-f build/Debug/gnumacosx/arraylist.operators.o.d
g++-fppermissive-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:错误:重新定义'datatype&arraylist::operator[](int)'
arraylist.operators.cpp:86:错误:先前在此处声明的:“datatype&arraylist::operator[](int)”
arraylist.operators.cpp:100:错误:重新定义'const数据类型&arraylist::operator[](int)const'
arraylist.operators.cpp:100:错误:“const数据类型&arraylist::operator[](int)const”之前在此处声明
arraylist.operators.cpp:128:错误:重新定义'const-arraylist&arraylist::operator=(const-arraylist&)'
arraylist.operators.cpp:128:错误:“const-arraylist&arraylist::operator=(const-arraylist&)”之前在此处声明
arraylist.operators.cpp:157:错误:“arraylist arraylist::operator+(const arraylist&)”的重新定义
arraylist.operators.cpp:157:错误:“arraylist arraylist::operator+(const arraylist&)”之前在此处声明
arraylist.operators.cpp:186:错误:重新定义'const-arraylist&arraylist::operator+=(const-arraylist&)'
arraylist.operators.cpp:186:错误:“const-arraylist&arraylist::operator+=(const-arraylist&)”之前在此处声明
arraylist.operators.cpp:201:错误:“arraylist arraylist::operator-(const数据类型&)”的重新定义
arraylist.operators.cpp:201:错误:“arraylist arraylist::operator-(const datatype&)”,之前在此处声明
arraylist.operators.cpp:223:错误:重新定义'const-arraylist&arraylist::operator-=(const-datatype&)'
arraylist.operators.cpp:223:错误:“const-arraylist&arraylist::operator-=(const-datatype&)”之前在此处声明
arraylist.operators.cpp:256:错误:“arraylist arraylist::operator*(const int&)”的重新定义
arraylist.operators.cpp:256:错误:“arraylist arraylist::operator*(const int&)”之前在此处声明
arraylist.operators.cpp:280:错误:重新定义'const-arraylist&arraylist::operator*=(const-int&)'
arraylist.operators.cpp:280:错误:“const-arraylist&arraylist::operator*=(const-int&)”之前在此处声明
arraylist.operators.cpp:322:错误:“arraylist arraylist::operator/(const int&)”的重新定义
arraylist.operators.cpp:322:错误:“arraylist arraylist::operator/(const int&)”,之前在此处声明
arraylist.operators.cpp:347:错误:重新定义'const-arraylist&arraylist::operator/=(const-int&)'
arraylist.operators.cpp:347:错误:'const-arraylist&arraylist::operator/=(const-int&)'
arraylist.operators.cpp:367:错误:重新定义'bool arraylist::operator==(const arraylist&)'
arraylist.operators.cpp:367:错误:'bool arraylist::operator==(const arraylist&)'
arraylist.operators.cpp:394:错误:重新定义'bool arraylist::operator=(const arraylist&)'
arraylist.operators.cpp:394:错误:“bool arraylist::operator!”=(const arraylist&)之前在此处声明
arraylist.operators.cpp:418:错误:重新定义'bool arraylist::operator>(const arraylist&)'
arraylist.operators.cpp:418:错误:“bool arraylist::operator>(const arraylist&)”之前在此处声明
arraylist.operators.cpp:425:错误:重新定义先前在此声明的'bool arraylist::operator=(const arraylist&')

arraylist.operators.cpp:438:错误:“bool arraylist::operator”的重新定义没有兼容标志。你有没有看报纸?它已经实现了VisualC++和GCC,并可以按照您的需要执行。

< P>我猜想,即使ARARYLIST.H包含了CPP文件,也可以编译它们。让我们看一下代码…< /P>
// arraylist.operators.cpp

#ifndef __arraylist_CLASS__
#include "arraylist.h"
#endif
然后我们就有了

// arraylist.h

#include "arraylist.cpp"
#include "arraylist.operators.cpp"
所以,如果编译arraylist.operators.cpp,它包括arraylist.h,其中包括arraylist.operators.cpp


这个类看起来像一坨屎,只需使用
std::vector

你能发布你的makefile吗或者检查一下Steve M的答案——我想他已经知道了。不要从标题中包含.cpp文件,尽管我知道原始代码是从网上复制的。如果您必须包含某些内容,但希望将其标记为非公共内容,只需使用不同的名称,例如blah_detail.hpp、_blah.inc等。Oops:)。找到了;)很抱歉这么说。