这是我收到的错误" C++需要所有声明的类型说明符" 我不知道如何解决
//this code id in the DynamicStringArray.cpp
template<class T>
DynamicArray<T>:: operator = (const DynamicArray<T> &rightSide) {
if(this != &rightSide) {
delete[] dynamicArray;
dynamicArray = new T[rightSide.size];
size = rightSide.size;
for(int i = 0; i < size; i++) {
dynamicArray[i] = rightSide.dynamicArray[i];
}
}
//and this one is in the DynamicStringArray.h
template <class T>
class DynamicArray{
public:
DynamicArray<T> operator=(const DynamicArray &rightSide);
退出状态 1DynamicStringArray.cpp:64:19:错误:C++需要所有声明的类型说明符DynamicArray:: operator = (const DynamicArray &rightSide( { ^生成 1 个错误。
" C++需要所有声明的类型说明符"我不知道如何 修复它
可以通过向声明中添加类型说明符来解决此问题。 功能是什么
template<class T>
DynamicArray<T>:: operator = (...)
返回? 可能不是整数、浮点数或布尔值,对吧? 编译器不知道,因为您没有确定返回类型是什么。
这是一个例子(我在SO中找到的!
// In MyClass.h
MyClass<T>& operator+=(const MyClass<T>& classObj);
// In MyClass.cpp
template <class T>
MyClass<T>& MyClass<T>::operator+=(const MyClass<T>& classObj) {
// ...
return *this;
}
在这两种情况下,返回类型说明符都很简单:
MyClass<T>&
希望这有帮助。